从 AS3 Air 应用程序的上下文菜单中捕获粘贴选项
Capturing the Paste option from the context menu in AS3 Air Application
这是我正在尝试做的事情:
用户右键单击文本字段,系统菜单显示 "cut,copy,paste,delete,Select All" 选项(只有 "Paste" 和 "Select all" 处于活动状态)
用户点击 "paste"
粘贴的文本被添加到文本字段中。
我的问题是能够在用户从上下文菜单中选择 "paste" 选项后 运行 立即 编码 。我试过听文本字段的变化,eventchange,但无济于事。这是我正在使用的代码。发生上述情况时,不会触发以下代码。 "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");
}
让我烦恼的是事件出于某种原因没有触发
一个TextField
is an InteractiveObject
, which has a paste
event. You can listen for it with the flash.events.Event.PASTE
常数。
编辑:抱歉,paste
事件文档说它不适用于 TextField
。它推荐使用 Flash 文本引擎,虽然这很难,而且我不知道如何用它进行文本输入。
你可以试试:
这是我正在尝试做的事情:
用户右键单击文本字段,系统菜单显示 "cut,copy,paste,delete,Select All" 选项(只有 "Paste" 和 "Select all" 处于活动状态)
用户点击 "paste"
粘贴的文本被添加到文本字段中。
我的问题是能够在用户从上下文菜单中选择 "paste" 选项后 运行 立即 编码 。我试过听文本字段的变化,eventchange,但无济于事。这是我正在使用的代码。发生上述情况时,不会触发以下代码。 "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");
}
让我烦恼的是事件出于某种原因没有触发
一个TextField
is an InteractiveObject
, which has a paste
event. You can listen for it with the flash.events.Event.PASTE
常数。
编辑:抱歉,paste
事件文档说它不适用于 TextField
。它推荐使用 Flash 文本引擎,虽然这很难,而且我不知道如何用它进行文本输入。
你可以试试: