[心得] 自己註冊一個事件

看板Flash作者 (掉進程式的深崖)時間17年前 (2009/02/26 19:58), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
延續今天問的問題,研究了好久,終於弄出來了,感謝大大的指教~^^~ 所以就把研究出來的東西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
文章代碼(AID): #19feFHF4 (Flash)