HOMERSS 2.0RSS comments
sizeSMALLMEDIUMLARGEXTRA LARGE
home
time
22 / Thu
05 29 08 09 31
title AS3筆記-事件名稱的管理
title
言
類
論
別

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


  • 恩... 1 Stars喔~ 2 Stars好! 3 Stars酷!! 4 Stars哇!!! 5 Stars (2 票, 平均: 3.50 / 5) << 請踴躍投票


    Facebook comments:

    2 Messages to “AS3筆記-事件名稱的管理”


    1. paul
      說:

      :)   good


    2. pei
      說:

      "幻聽"這個詞真是讚

    Leave a Message

    :) D: :( :D more »