AS3.0自定义事件 例子

//自定义事件 
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);
}
原文地址:https://www.cnblogs.com/602147629/p/1911383.html