//---------------------------------------------------------------------------------------- //AsBroadcaster caster = {} AsBroadcaster.initialize(caster) a = {message:function (a,b) {trace("a: "+a+b)}} b = {message:function (a,b) {trace("b: "+a+b)}} c = {message:function (a,b) {trace("c: "+a+b)}} caster.addListener(a) caster.addListener(b) caster.addListener(c) caster.broadcastMessage("message", "Hello ", "World!") caster.broadcastMessage("message", "Argument ", "Support!") /* trace a: Hello World! b: Hello World! c: Hello World! a: Argument Support! b: Argument Support! c: Argument Support! */ //---------------------------------------------------------------------------------------- //EventDispatcher import mx.events.EventDispatcher; var square:Object = new Object(); EventDispatcher.initialize(square); // 写法一 myListener = new Object(); myListener.a_evt = function(evt) { trace("type:"+evt.type+", target:"+evt.target+", arg:"+evt.arg); }; square.addEventListener("a_evt", myListener); square.dispatchEvent({type:"a_evt", arg:"a1"}); // 写法二 function b_evt(evt) { trace("type:"+evt.type+", target:"+evt.target+", arg:"+evt.arg); } square.addEventListener("b_evt", {b_evt:b_evt}); square.dispatchEvent({type:"b_evt", arg:"a2"}); // 写法三 square.addEventListener("c_evt", {c_evt:function (evt) { trace("type:"+evt.type+", target:"+evt.target+", arg:"+evt.arg); }}); square.dispatchEvent({type:"c_evt", arg:"a3"});