Flex 事件分发(FlexViewer事件机制)剥离过程(flex.)全程干货

随心笔谈2年前发布 admin
202 0 0

文章摘要

这篇文章介绍了自定义事件类`AppEvent`的实现。该类继承自`Event`,并提供了以下功能:通过`data`属性管理事件数据,通过`callback`属性绑定处理事件的回调函数。文章还定义了`dispatch`方法用于触发事件,并提供了`addListener`和`removeListener`方法用于绑定和撤回事件监听器。整体展示了如何通过继承和扩展,实现自定义的事件处理机制。


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

}
}

© 版权声明

相关文章