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);
}

你可能感兴趣的:(as3)