EventDispather类的观察者模式
一:对象要成为主题,在自己变化的时候要通知其他对象,使EventDispather类的3种使用方法:
1。以类的静态属性初始化
import mx.event.EventDispather;
class MyClass1{
public var addEventListener:Function;
public var removeListener:Function;
private var dispather:Function;
private var EventDispather_mixin=EventDispather.initialize(MyClass.prototype);
public MyClass{
//init
}
}
2.在构造函数中初始化
import mx.event.EventDispather;
class MyClass{
public var addEventListener:Function;
public var removeListener:Function;
private var dispather:Function;
public MyClass{
EventDispather.initialize();
}
}
3.以组合的方式包含EventDispather类
import mx.event.EventDispather;
class MyClass{
private var eventSrc:Object;
function MyClass3(){
EventDispather.initialize(eventSrc);
}
public function registerView(view){
eventSrc.addEventListener("change",view);
}
public function removeView(view){
eventSrc.removeEventListener("change",view);
}
private function onChange(){
var eventObj:Object=new Object();
eventObj.target=this;
eventObj.type="change";
eventSrc.dispathEvent(eventObj);
}
}
二:观察者接受事件
subject.addEventListener("change",this);
subject.addEventListener("click",this);
public function change(eventObj:Object):Void{
}
public function click(eventObj:Object):Void{
}
public function change(eventObj:Object):Void{
trace(eventObj.parm1);
trace(eventObj.parm2);
}
*************************
Xiang Xiang
QQ:86527965
*************************