| 月 | 日 | 年 | 時 | 分 |
22 /
Thu |
|
| 05 | 29 | 08 | 09 | 31 | 肆 |
| AS3筆記-事件名稱的管理 |
![]() |
![]() |
|||
![]() |
![]() |
AS3.0的特點之一就是有統一的event系統
通常event是由發佈端 dispatch(new Event(“eventName”);
然後由接收端, addEventListener(“eventName”, toDoFunc);
不過像是以上的寫法,當多人在同時develop同一個案子的時候,很容易就會造成使用到相同的名稱,而造成listener幻聽,執行一些不預期toDoFunc.
這種錯誤多半是因為用到一樣的”event”字串,所以很多人為了防止這類錯誤,而使用千奇百怪的名字去防止相同名字的event發生,問題是用了很多怪名字,雖然可以防止”撞名”,不過卻會造成其他開法者使用上的不方便.
解決方案:
你不難發現基本上整個flash的系統, 都是用同一種規範在防止這類的錯誤發生(像是MouseEvent.CLICK)
一般都是把要用的怪字串隱藏起來設定成 public static const 的屬性:
(主程式裡面有 obj:a=new a();)
發佈端: (a.as)
public static const EVENTNAME:String = “uniqueEventName”;
dispatchEvent(new Event(EVENTNAME));
(這個EVENTNAME可以跟flash內建的一樣像是 CLICK 或 COMPLETE等等,只要後面的”uniqueEventName”特別就不會衝到了,這樣一來使用者也會很容易瞭解使用)
接收端:
obj.addEventListener(a.EVENTNAME,toDoFunc);
這樣一來不但別人在看的時後,由 api 可以清楚明瞭的知道有哪些event可以使用(public 屬性),也可以使用非常有親和力的event名稱(variable name)及避免相同名字的發生.
PS:感謝akqa的有人A

















(2 票, 平均: 3.50 / 5) << 請踴躍投票
2 Messages to “AS3筆記-事件名稱的管理”
Leave a Message
paul 說:
pei 說:
"幻聽"這個詞真是讚