作者LCDbest (掉进程式的深崖)
看板Flash
标题[心得] 自己注册一个事件
时间Thu Feb 26 19:58:07 2009
延续今天问的问题,研究了好久,终於弄出来了,感谢大大的指教~^^~
所以就把研究出来的东西po上来,搞不好有人也会需要@@
范例:
现在有一个主影格,里面有一个BB类别和由BB类别产出的物件bb,
(bb已经放到舞台上了)
程式码如下:
//这里是自己建立一个Event事件。
package{
import flash.events.Event;
public class MyEvent extends Event
{
//新事件的Type
public static const myEventType:String = "MyEvent";
//新事件的messag
public var message:String;
public function MyEvent(message:String = "MyEvent")
{
super(myEventType);
this.message = message;
}
public override function clone():Event
{
return new MyEvent(message);
}
}
}
package
{
import flash.display.Sprite;
public class testA extends Sprite
{
public function testA()
{
//监听bb的事件,因为dispatchEvent()
//会广播属於自己的那层,所以要监听bb物件里的事件
//( 应该是这样没错~@@~ )
bb.addEventListener("MyEvent", show2);
bb.addEventListener("myEventName", show3);
}
public function show2(event:Event)
{
trace("pk2");
}
public function show3(event:Event)
{
trace("pk3");
}
}
}
//----//
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.Event;
public class BB extends Sprite
{
var myEvent:MyEvent;
public function BB()
{
addEventListener(MouseEvent.CLICK, show);
}
public function show(event:MouseEvent)
{
trace("pk");
//采用两种方式,选一种就可以了,
//可以自己建立一个类别MyEvent,
//或是直接new一个新的来用。
myEvent = new MyEvent();
dispatchEvent(myEvent);
dispatchEvent(new Event("myEventName"));
}
}
}
大致上这样@@,希望会有帮助。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.126.249.114