【发布时间】:2011-05-26 04:37:06
【问题描述】:
我是 Flash 新手,我想将 TextArea 设为只读,这样用户就无法复制和粘贴文本。
这可能吗?
欢迎提供示例或链接,我不介意学习;)
谢谢
【问题讨论】:
-
TextArea.editable = true OR false
我是 Flash 新手,我想将 TextArea 设为只读,这样用户就无法复制和粘贴文本。
这可能吗?
欢迎提供示例或链接,我不介意学习;)
谢谢
【问题讨论】:
TextArea 有一个editable 属性。你可以用那个。但是,我很确定完全复制粘贴证明是不可能的。不过,你可以让它变得困难。也许,从文本中创建图像并显示它会使文本难以被复制,但并非不可能。
【讨论】:
您可以使用textArea.textField.selectable 来避免复制/粘贴:
在 Flex 中,TextArea 有自己的selectable:
【讨论】:
您需要做的就是右键单击您放置在网页上的文本区域。然后从弹出窗口中,单击“编辑标签”或按“Shift + F5”。将显示 textarea 的属性窗口。如果尚未选择,请单击常规选项。然后只需单击属性窗口中的“只读复选框”。您还可以通过勾选“禁用复选框”来阻止文本区域框的内容被选中、复制和粘贴。
希望这能解决你的问题。
【讨论】:
这是我快速制作的一个类,您可能会觉得有用:
package
{
import flash.text.TextField;
import flash.display.Bitmap;
import flash.display.BitmapData;
public class BitmapText extends Bitmap
{
// vars
private var _textf:TextField;
/**
* Draws text onto the bitmap
* @param tf The TextField to draw
*/
public function drawText(tf:TextField):void
{
_textf = tf;
bitmapData = new BitmapData(tf.width,tf.height,true);
bitmapData.draw(tf);
}
/**
* Update text
* @param t The new text
*/
public function set text(t:String):void
{
if(_textf)
{
_textf.text = t;
drawText(_textf);
}
}
}
}
使用这个类:
var t:TextField = new TextField();
t.text = "some copy";
var bt:BitmapText = new BitmapText();
bt.drawText(t);
addChild(bt);
bt.text = "some new text lol";
如您所见,您可以通过以下方式轻松更新文本:
BitmapText.text = "new value";
【讨论】: