在as2.0時代,我習慣於利用乙個自定義的全域性事件管理器來管理所有的事件.這樣的好處是便於後 期**結構維護.說白了也就是偷懶...但是無論如何,我很喜歡這種方法,所以在as3裡,我比較執拗的 想實現這個全域性事件管理器.
如果說按照as2.0的思路,大致可以把事件分為三種,按鈕事件等公共事件,元件架構的事件及自定義事件.前兩者可都歸於系統事件,而我需要的管理器便是用來管理自定義事件的.於是就有了eventcenter這麼個訊息中心的公用類
**如下:
/*@author:frank
site:www.2solo.cn
date:2008.01.14
info:靜態訊息中心
*/package nt.utils
/**事件註冊
*/public static function addmyeventlistener(...args)
/**事件派發
*/public static function dispatchmyevent(type:object)
/**事件登出
*/public static function removemyeventlistener(...args) }}
/**加強event
*/import flash.events.*;
class enhancedevent extends event
/**返回附帶的乙個引數物件
*/public function get eventarg ():object
/** 過載event的tostring方法
*/public override function tostring ():string
}這裡用到的enhancedevent類是乙個event類的增強.我在
[url=
上參考了幾位朋友的方法後最終選擇用這個方法來做 為給事件傳遞中帶有引數的功能的加強手段。
方法說明:
public class eventcenter
public static function addmyeventlistener(...args) //事件註冊
public static function dispatchmyevent(type:object) //事件廣播,該方法利用乙個引數來接受事件和物件,所以需要同一引數物件名,比如這裡的asd.可以通過...(rest)進行改造,下次更新了版本會繼續發在我的blog上.
public static function removemyeventlistener(...args) //事件刪除
class enhancedevent
eventarg //enhancedevent繼承event且擁有eventarg屬性來傳遞乙個引數對 象.
附上[url=原始檔[/url]
,內含我製作的乙個應用例項.
as3按鈕事件
在剛開始學as3時,如果不知道按鈕的事件如onpress的話,實在是件很沒有頭緒的事情。在 as3.0中,所有的時間都已經被event統一管理了.相對as2.0來說,按鈕事件是在as3中變動最大的事件.在as3.0中例如onpress等以前的按鈕事件寫法已經基本退出了歷史的舞台.取而代之的是統一的管...
as3按鈕事件
在剛開始學as3時,如果不知道按鈕的事件如onpress的話,實在是件很沒有頭緒的事情。在 as3.0中,所有的時間都已經被event統一管理了.相對as2.0來說,按鈕事件是在as3中變動最大的事件.在as3.0中例如onpress等以前的按鈕事件寫法已經基本退出了歷史的舞台.取而代之的是統一的管...
as3按鈕事件
在剛開始學as3時,如果不知道按鈕的事件如onpress的話,實在是件很沒有頭緒的事情。在 as3.0中,所有的時間都已經被event統一管理了.相對as2.0來說,按鈕事件是在as3中變動最大的事件.在as3.0中例如onpress等以前的按鈕事件寫法已經基本退出了歷史的舞台.取而代之的是統一的管...