jef*_*150 1 apache-flex events actionscript-3 event-dispatching custom-events
我有一个需要与事件一起传递的参数.在尝试通过扩展类将它放在类型上失败之后,我在另一个SO问题中被建议写一个自定义事件.
我之前尝试过这个但是我无法弄清楚如何发送它,因为我只想Event.COMPLETE
在FileReference上发送带有普通事件的另一个参数.我不能Event.COMPLETE
解雇然后发送我的事件,因为那时我将在同一条船上...所需的参数不会在初始Event.COMPLETE
对象中,所以我将无法调度传递该参数的新事件实际执行工作的代码.
非常感谢所有帮助,非常需要它.谢谢.
基本上,我需要Event.COMPLETE
完全按照原样替换功能,我只需要一个能够保存我额外属性的事件.请告诉我有一些方法可以做到这一点.
首先你需要正常添加一个事件监听器,Event.COMPLETE
因为它将自动调度,你无能为力.在该事件处理程序中,您可以调度自己的自定义,即使应用程序的其余部分也使用附加到其上的自定义属性进行侦听.下面是一个简单的例子:
您的事件处理代码如下所示:
yourObject.addEventListener(Event.COMPLETE, function(event:Event):void{
var myEvt:MyEvent = new MyEvent(MyEvent.COMPLETE, myCustomProperty);
dispatchEvent( myEvt );
})
Run Code Online (Sandbox Code Playgroud)
这个MyEvent
班看起来像:
package
{
import flash.events.Event;
public class MyEvent extends Event
{
public static const COMPLETE:String = "MyEventComplete";
var myCustomProperty:*;
public function MyCustomEvent(type:String, prop:*) :void
{
myCustomProperty = prop;
super(type);
// if you want your event to bubble
// be sure to specify : super(type, true)
}
//override clone() so your event bubbles correctly
public override function clone() :MyEvent {
return new MyEvent(this.type, this.myCustomProperty)
}
}
}
Run Code Online (Sandbox Code Playgroud)
您现在可以像任何其他事件一样为自定义事件添加事件侦听器:
addEventListener(MyCustomEvent.COMPLETE, someFunction);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1688 次 |
最近记录: |