[心得] 自己註冊一個事件
延續今天問的問題,研究了好久,終於弄出來了,感謝大大的指教~^^~
所以就把研究出來的東西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