Actionscript 3 dispatchEvent()能否在AS3中携带参数?
看看这个例子:Actionscript 3 dispatchEvent()能否在AS3中携带参数?,actionscript-3,events,parameters,addeventlistener,dispatchevent,Actionscript 3,Events,Parameters,Addeventlistener,Dispatchevent,看看这个例子: addEventListener("myEventType", myFunction("argument")); function myFunction(args:String):Function { return function(evt:Event):void { trace(evt.currentTarget, "has", args); }; } dispatchEvent(new Event("myEventType", true))
addEventListener("myEventType", myFunction("argument"));
function myFunction(args:String):Function {
return function(evt:Event):void {
trace(evt.currentTarget, "has", args);
};
}
dispatchEvent(new Event("myEventType", true));
它起作用了
我可以做类似的事情,但通过dispatchEvent传递参数吗
如果dispatchEvent位于与addEventListener和myFunction完全分离的类中,这将非常方便
我非常需要它,所以我不想为每种情况创建自定义事件类。您可以使用本机flash.events.DataEvent传递字符串参数,或者在需要将参数传递给事件处理程序的所有情况下创建带有数据的自定义DataEvent:*属性
如果要自定义事件侦听器的行为而不是添加事件侦听器,可以创建侦听器对象来保存此自定义参数,但我认为此技术比自定义事件更复杂:
addEventListenermyEventType,新的EventListenerparam1.OneEvent;,其中EventListener是如下所示的类:
public class EventListener
{
private var params:*;
public function EventListener(params:*)
{
this.params = params;
}
public function onEvent(event:Event):void
{
trace("onEvent, params = ", params);
}
}
你可以看看信号。它们是事件的替代品,您可以通过信号发送任何您想要的额外参数