带参数的Flash AS3事件函数

时间:2013-05-30 02:52:10

标签: actionscript-3 events dispatch

我需要创建一个包含传入参数的事件函数,看起来像这样。

    public function foo(e:Event, args)
    {
        trace(args[0]);
    }


    addEventListener("fooEvent", foo);
    dispatchEvent(new Event("fooEvent", true), args);

无论如何我能做到这一点?谢谢,伙计们。

1 个答案:

答案 0 :(得分:0)

试试这个:

package {
  import flash.events.Event;

  public class CustomEvent extends Event {
    public var params:Object;

    public function CustomEvent(type:String, paramsObj:Object = null, bubbles:Boolean = true, cancelable:Boolean = true) {
      super(type, bubbles, cancelable);

      if (paramsObj) {
        params = paramsObj;
      }
    }

    public override function clone():Event{
      return new CustomEvent(type, params, bubbles, cancelable);
    }

    public override function toString():String{
      return formatToString("CustomEvent", "params", "type", "bubbles", "cancelable");
    }
  }
}

然后您可以构建事件,如:

dispatchEvent(new CustomEvent("fooEvent", {param1:"foo", param2:"bar"}))

并检索如下数据:

addEventListener("fooEvent", function(event:CustomEvent):void {
  trace("param1: " + event.params.param1);
  trace("param2: " + event.params.param2);
});