问题描述
|
我是Flash的新手,我有一个TextArea,我想设为只读,以便用户无法复制和粘贴文本。
这可能吗?
示例或链接欢迎我不介意学习;)
谢谢
解决方法
TextArea有一个“ 0”属性。您可以使用它。但是,我非常确定不可能完全复制粘贴证明。不过,您可以加倍努力。也许,根据文本创建图像并显示它会使文本很难被复制,但并非不可能。
,您可以使用ѭ1来避免复制/粘贴:
http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/fl/controls/TextArea.html#textField
http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/flash/text/TextField.html#selectable
在Flex中,
TextArea
有其自己的selectable
:
http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/mx/controls/TextArea.html#selectable
,您需要做的就是右键单击您放置在网页上的文本区域。然后从弹出窗口中,单击“编辑标签”或按“ Shift + F5”。 textarea的属性窗口将消失。如果尚未选择常规选项,则单击。然后,只需在属性窗口中单击“只读复选框”即可。您也可以通过选中“禁用的复选框”来防止选择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\";