//自定义事件
package
{
import flash.events.Event;
public class GameEvent extends Event
{
public static var LOGIC_INIT:String = "LogicInitialize";
public var data:Object;
/**
* 构造函数
* @param type 时间类型
* @param bubbles 是否冒泡
* @param cancelable 指示是否可以阻止与事件相关联的行为。
*/
public function GameEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false)
{
super(type, bubbles, cancelable);
}
override public function toString():String {
return formatToString("GameEvent","type","bubbles","cancelable","eventPhase","data");
}
override public function clone():Event {
var tempEvt:GameEvent=new GameEvent(type,bubbles,cancelable);
tempEvt.data=data;
return tempEvt;
}
}
}
//事件发送
package
{
import flash.events.EventDispatcher;
public class GameBroadcast extends EventDispatcher
{
public function GameBroadcast()
{
}
public function replay()
{
var gameEvent:GameEvent=new GameEvent(GameEvent.LOGIC_INIT);
dispatchEvent(gameEvent);
}
}
}
package
{
import flash.display.Sprite;
public class ManagerCollect
{
public static var broadcast:GameBroadcast=new GameBroadcast();
public function ManagerCollect()
{
}
}
}
ManagerCollect.broadcast.addEventListener(GameEvent.LOGIC_INIT,gameHandler);
ManagerCollect.broadcast.replay();
function gameHandler(e:GameEvent):void
{
trace(e.type);
trace(e.target);
}