文章摘要
这篇文章介绍了自定义的`AppEvent`类,该类继承自Flash的`Event`类,并在继承的基础上扩展了功能。`AppEvent`类包含数据属性`_data`和回调函数属性`_callback`,并通过构造函数接收`type`、`data`和`callback`参数,并通过`super(type)`调用父类构造函数。类中实现了获取和设置`data`和`callback`的方法,并重写了`clone()`、`dispatch()`、`addListener()`和`removeListener()`静态方法。这些方法允许将事件与`EventBus`接口绑定,并通过绑定的事件处理实现自定义事件的绑定、监听和取消监听功能。文章的核心内容是扩展了基本的Event模型,支持自定义数据和回调函数的绑定与处理。
package com
{
import flash.events.Event;
public class AppEvent extends Event
{
//————————————————————————–
//
// Properties
//
//————————————————————————–
private var _data:Object;
private var _callback:Function;
public function AppEvent(type:String, data:Object=null, callback:Function=null)
{
super(type);
_data=data;
_callback=callback;
}
public function get data():Object
{
return _data;
}
public function set data(value:Object):void
{
_data=value;
}
public function get callback():Function
{
return _callback;
}
public function set callback(value:Function):void
{
_callback=value;
}
public override function clone():Event
{
return new AppEvent(this.type, this.data, this.callback);
}
public function dispatch():Boolean
{
return EventBus.instance.dispatchEvent(this);
}
public static function dispatch(type:String, data:Object=null, callback:Function=null):Boolean
{
return EventBus.instance.dispatchEvent(new AppEvent(type, data, callback));
}
public static function addListener(type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false):void
{
EventBus.instance.addEventListener(type, listener, useCapture, priority, useWeakReference);
}
public static function removeListener(type:String, listener:Function, useCapture:Boolean=false):void
{
EventBus.instance.removeEventListener(type, listener, useCapture);
}
}
}