Flash:addEventListener未检测到输入文本框中的粘贴事件

Flash:addEventListener未检测到输入文本框中的粘贴事件,flash,actionscript-3,event-handling,copy-paste,Flash,Actionscript 3,Event Handling,Copy Paste,我是Flash新手,我似乎不能做这个简单的动作 (我正在使用ActionScript 3.0) 我在编辑器中创建了一个输入文本框。实例名为“test”。 在我的动作编辑器中,我有以下内容: import flash.events.Event; this.test.addEventListener(Event.PASTE, pasteHandler); function pasteHandler(e:Event) { trace("blaaaaaaaaaagh"); } 当我运行它时,

我是Flash新手,我似乎不能做这个简单的动作

(我正在使用ActionScript 3.0)

我在编辑器中创建了一个输入文本框。实例名为“test”。 在我的动作编辑器中,我有以下内容:

import flash.events.Event;
this.test.addEventListener(Event.PASTE, pasteHandler);

function pasteHandler(e:Event)
{
    trace("blaaaaaaaaaagh");
}
当我运行它时,它不会检测到我的任何粘贴事件,无论我是在执行Ctrl+V还是右键单击+粘贴。如果我使用另一个事件,比如MouseEvent.CLICK,它会很好地检测到它。事实上,我认为没有检测到任何Event.XXX事件(如COPY、INIT等)(至少从我尝试的事件中是这样)。所有MouseEvent和KeyboardEvent事件似乎都工作正常


我做错了什么?

TextField对象不发送清除、复制、剪切、粘贴或选择所有事件。为这个坏消息感到抱歉


Tyler。

我会监听Event.CHANGE,因为粘贴会更改字段。

解决方法是监听TextEvent.TEXT\u输入并防止默认行为:

textField.addEventListener(TextEvent.TEXT_INPUT, onTextInput );

function onTextInput( e:TextEvent ) : void
{
    // this takes place of PASTE because Event.PASTE is not triggered on a textfield
    var t:TextField = TextField( e.currentTarget );
    t.replaceSelectedText( e.text );
    e.preventDefault();
}

您可以自己扩展它并添加该功能(您必须监视按下的键),但下面的建议也很好。设置myField.text=“foo”时,Event.CHANGE似乎不会触发。是否有其他方法将文本添加到引发更改事件的字段中?可能重复