以下是我要做的事情:
用户右键单击文本字段,系统菜单显示"剪切,复制,粘贴,删除,全选"出现(只有"粘贴""全选"有效)
用户点击"粘贴"
粘贴的文本将添加到文本字段中。
我的问题是能够在用户选择"粘贴"之后立即运行代码来自contextmenu的选项。我试着听文本域更改,事件更改,但无济于事。这是我正在使用的代码。发生上述情况时,以下代码不会触发。 " d"是文本域对象
d.addEventListener(Event.CHANGE, paste);
private function paste(e: Event): void {
trace("paste event fired");
if(Clipboard.generalClipboard.hasFormat(ClipboardFormats.TEXT_FORMAT)) {
trace("pasted data is ", String(Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT)));
}
}
更新:
我尝试了下面的建议,但仍然没有运气。这是我的代码。 " d"已添加到阶段
private function start():void {
d.addEventListener(TextEvent.PASTE, paste);
}
private function paste(event:TextEvent):void{
trace("something got pasted");
}
让我烦恼的是,无论出于何种原因,事件都没有被解雇
答案 0 :(得分:1)
TextField
是InteractiveObject
,其中有paste
个事件。您可以使用flash.events.Event.PASTE
常量来监听它。
编辑:道歉,paste
事件文档说它不适用于TextField
。它建议使用Flash文本引擎,虽然这很困难,但我不知道如何使用它进行文本输入。
你可以尝试: