参考了as2时代的
GEventDispatcher类,改写成SSAS,并且精简了一下只提供3个最基本的功能
1. addEventListener( eventType:String , listener:object , listenerHandler:String )
2. removeEventListener(eventType:String , listener:object , listenerHandler:String )
3. dispatchEvent({type:"type"})
演示代码:
//需要用到的2个类
AAA = function(){}
BBB = function(){}
//首先加载EventDispatcher
load("N2EventDispatcher.asc")
application.onAppStart = function(){
//a1是AAA类的一个实例
var a1 = new AAA()
//把a1变成广播者后,a1就可以广播事件了
N2EventDispatcher.init(a1)
//b1是BBB类的一个实例 ,他是一个监听者,监听a1广播的test事件
var b1 = new BBB() //listener
b1.onTest= function(eo /* :Event */){
trace("收到"+eo.type +"事件")
}
a1.addEventListener("test",b1,"onTest") //参数为 (eventType , 监听者,监听者的handler)
a1.dispatchEvent({type:"test"}) //广播事件,相当于 a1.dispatchEvent(new Event("test"))
a1.removeEventListener("test",b1,"onTest") //删除监听
a1.dispatchEvent({type:"test"}) //再广播就不会触发了
}
N2EventDispatcher 源代码:
