【问题标题】:Flash AS3 Event Function with Arguments带参数的 Flash AS3 事件函数
【发布时间】:2013-05-30 02:52:10
【问题描述】:

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

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


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

无论如何我可以做到这一点?谢谢各位。

【问题讨论】:

  • 您可以通过继承 Event 并将您的自定义参数添加到该事件对象来创建自定义事件。这就是设计事件系统的方式。 :)
  • 查看此链接获取更多帮助cookbooks.adobe.com/…

标签: actionscript-3 events dispatch


【解决方案1】:

试试这个:

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);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-19
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    相关资源
    最近更新 更多