AS3 0教程 強大的事件機制 5

2021-08-25 03:44:20 字數 1958 閱讀 1553

有兄弟反映,似乎as3的事件機制有些複雜。

在我看來,程式設計上 「複雜」這個詞一般有兩種定義:實現麻煩 ,或者內容眾多。

as3中的事件機制其實現並不麻煩,邏輯更加清楚簡單,因此不是「實現麻煩」這一類。

那應該指的是「內容眾多」這個意思。黑羽倒覺得"內容眾多"往往是褒義詞,意味著api豐富,控制範圍和深度大。那麼一旦得其要領,即思路通暢,記憶深刻,也就不會覺得「複雜」了。

我也會盡量寫的簡單通俗,照顧新手。但我又要同時考慮到as2老手們的需求,不讓他們打瞌睡。所以as初學者 看到不懂的地方可以跳過,多用用event後,有需要再回過頭看看我教程的其它部分,一定會有收穫。

拿今天要講的事件傳送來說,我預計寫以下內容:

1. eventdispatcher和event的簡介

2. 回顧as2.0事件傳送

3. 繼承eventdispatcher進行事件傳送。

4. 合成eventdispatcher進行事件傳送。

5. 實現ieventdispatcher介面來進行事件傳送。 與設計模式中的裝飾器模式相似。

那麼新手看第一,第二,第三部分已經足夠應付一般應用。as2老手們要看看第四部分。 開發大型專案的as開發者,則第五部分必看。

1.eventdispatcher和event的簡介。

as3中object是萬物之宗母,且生養眾多,共有220多個子類。event(事件類)和eventdispatcher(事件傳送者類)就是在這一代之中。 event和eventdispatcher是事件機制的兩大主角,二者缺一不可。

event類及其子類的功能就是提供各種具體的事件供eventdispatcher使用,不能幹別的。

eventdispatcher則是要讓它所有的子類都能傳送事件。

那麼,as3就讓所有要傳送事件的類都統統繼承於eventdispatcher。而需要傳送事件的類毫無疑問,都是些很重要的類,比如urlloader,displayobject。

其中displayobject更是一代霸父,所有可視物件,比如movieclip,spirit等等等等統統都是它的子孫。

因此,父以子貴,eventdispatcher在object的第一代子女中,位高權重,影響極大。

2. 回顧 as2.0中傳送事件

as2.0中傳送事件是怎麼幹的?

在類中留幾個函式物件,如 dispatchevent:function,再搞乙個eventdispatcher.initialize()來初始化一下要傳送事件的類,然後,就搞定了。.....好簡單。

但as3中更簡單,更加標準。

3.繼承eventdispatcher進行事件傳送。

繼承是最方便最快的一種。

剛剛說過了,所有的可視物件都繼承displayobject,是eventdispatcher的孫子輩,因此都可以直接使用dispatchevent()來傳送事件了。

看**,我們讓乙個普通的movieclip, kingdamc,來傳送乙個莫名其妙的事件,比如說"kingdaplaysc"。

kingdamc.dispatchevent(new event("kingdaplaysc"));

現在我們要讓乙個我們自己的類來傳送事件。

//【黑羽】actionscript 3.0系列教程

////以下為乙個名叫kingdasampleclass的document class,請自行和乙個fla繫結。

//如果忘了怎麼弄,看我第三篇教程

package

private function actionhandler(event:event):void

private function anotherhandler(event:event):void }}

import flash.events.eventdispatcher;

import flash.events.event;

class kingdasampledispatcher extends eventdispatcher {

AS3 0教程 強大的事件機制 6

事件機制寫的太多了,我自己都有點煩了。但沒辦法,img uploads allimg 080401 1843290.gif img 太重要了。而且as3做了這麼多好的改進,值得我們去一一探尋,給我們日後的程式設計帶來極大的便利。actionscript 初學者,本節可以跳過不看。actionscri...

AS3 0反射機制的使用

取類名 傳進乙個object,返回類的全名 var loader urlloader new urlloader var classname string getqualifiedclassname loader trace classname displays flash.net.urlloade...

as3 0 初學者完整教程

記大溼成長歷程 又名 大濕是怎樣練成的 注意 本教程目前僅為輔助教程型別,注意是配合新手看書給出的原始碼及案例!當然開頭要有廢話 有很多的新人想要學習程式設計,所以選擇了as3.0這門語言,一方面是它是所有物件導向語言當中最簡單的,另一方面它也是最容易學的一門語言!說這是乙個教程,不如說這是乙個案例...