這次先把actionscript 3.0 事件機制總結一下先吧,這裡只說一下自定義類傳送事件的3中方式,因為在設計模式中是比較常用的。例如mvc。
關於自定義事件,主要由於兩個類:事件類(event),事件傳送類(eventdispatcher)。我們討論的自定義傳送事件,就是如何使物件能夠傳送事件。
方式一:繼承eventdispatcher類
packageprivate function actionh(e:event):void }
}import flash.events.event;
import flash.events.eventdispatcher;
class extendsdispatcher extends eventdispatcher
}
只要繼承eventdispatcher類,就可以直接用eventdispatcher類的方法傳送事件,方便簡單。
方式二:復合eventdispatcher物件
packageprivate function show(e:event):void }
}import flash.events.event;
import flash.events.eventdispatcher;
class compont1
public function geteventdispatch():eventdispatcher
public function dosome():void
}
所謂的復合,其實就是用eventdispatcher傳送事件而已,因為eventdispatcher本身就是個事件傳送類,一般情況下,用eventdispatcher傳送事件反而會更簡單。
方式三:實現ieventdispatcher介面
packageprivate function actionh(e:event):void }
}import flash.events.event;
import flash.events.eventdispatcher;
import flash.events.ieventdispatcher;
class implete implements ieventdispatcher
//實現5個方法
public function addeventlistener(type:string,listener:function,usecapture:boolean=false,priority:int=0,useweakreference:boolean=true):void
public function dispatchevent(evt:event):boolean
public function haseventlistener(type:string):boolean
public function removeeventlistener(type:string, listener:function, usecapture:boolean = false):void
public function willtrigger(type:string):boolean
}
當類本身要繼承其他類,無法繼承eventdispatcher類的時候,同時又希望這個類能夠成為乙個單純的事件傳送類,並且可以自己新增某些方法在裡面,這時候用繼承ieventdispatcher介面就比較合適了,不過過程比較麻煩寫,要實現ieventdispatcher介面的5個方法。
ActionScript 3 0工廠模式例項
研究了一段時間工廠模式,順便把書裡面的例子敲一下,大概效果就是這樣。示例效果 說明 運用了兩個工廠模式,乙個是簡單工廠 shipcreator.as 建立飛行器,乙個是工廠方法 weapon.as 建立 子彈。飛機裝載的 過於耦合,如果要開發成小遊戲,還要改善。用這個例子說明工廠方法實在適合不過,飛...
actionscript 3 0 理解冒泡事件
關於冒泡事件的理解,主要有3個階段 1.捕獲階段,eventphase的屬性值1 2.目標階段,eventphase的屬性值2 3.冒泡階段,eventphase的屬性值3 以上為黑羽所著的 actionscript3殿堂之路 中描述為。讓我們來看下面的例子 比如點選以上倒數第3個容器,事件流過程如...
ActionScript 3 0 繼承與重寫
1.繼承意味著新類看起來與原來的類相似,新類擁有與原來類相同的對外介面,或增加了一些介面。不是private的例項成員都可以被子類繼承 類的靜態成員不被子類繼承,但在子類中可以訪問父類的靜態成員。繼承用法 package 2.重寫經常要改變繼承自父類中的某個屬性或是方法中的內容,但不改變名稱,從達到...