亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

AS3.0教程:強大的事件機制(1)

系統(tǒng) 1769 0

Event機制作為重頭戲,在ActionScript 3.0中加強了很多。更加統(tǒng)一、易用、標(biāo)準(zhǔn)、靈活。
ActionScript 2.0中有眾多的事件實現(xiàn)機制:
[1b]回顧和比較[/1b]
AS1.0玩家最愛用onClipEvent(), on(),又方便又直接。缺點在于邏輯分散到了各個舞臺元件中,難以管理和維護。更加別說代碼重用了。別跟俺說可以Copy, Paste,這不叫重用,這叫低級。
AS2.0中,增加了一些事件處理機制:
1.回調(diào)函數(shù): onLoad, onComplete等。相信兄弟們最熟悉的應(yīng)該就是XML.onload回調(diào)函數(shù)了。
2.事件偵聽器型:
這個就是addListener(), addEventListener()這種類型的。發(fā)送事件有的是內(nèi)置,有的通過dispatchEvent().
嗯,這種事件機制基本上就和AS3.0很像了。自從使用了ActionScript 2.0來開發(fā)項目,[1b]
黑羽
[/1b]就盡可能的多用這種事件處理機制。這個習(xí)慣很好,基本上讓[1b]
黑羽
[/1b]對3.0的機制很快適應(yīng)過來。
說道這里,[1b]
黑羽
[/1b]要多扯幾句2.0,抱怨一下它的不足,再讓大家看看AS3.0的光明大道。
(1).2.0中除了UIComponent能自己發(fā)送事件,絕大部分類不能自己發(fā)送事件的,比如MovieClip, 或者一些自定義的類。[1b]
黑羽
[/1b]還制作了一個EventSender的事件發(fā)送類來解決。
當(dāng)然你可以通過擴展來解決MovieClip這些類來解決,但是在[1b]一些輕量級或者特殊運用中[/1b],還是用[1b]
黑羽
[/1b]這個EventSender類更加方便。
比如說,你突然需要舞臺上某個A_mc的運行到第20幀時發(fā)送一個"finished"事件出來,并且希望另外某個B_mc能夠捕捉到這個事件,那么用一般的擴展方法不知道有多么麻煩!
(1.要重做一個帶有事件發(fā)送功能的類和A_mc通過某種方式綁定。2.同時確保在B_mc中要能訪問到發(fā)送事件的對象并addEventListenr)。
而用俺的EventSender類非常簡單,A_mc中寫 EventSender.send("finished", this), B_mc中寫EventSender.addListener("finished", listenerFunc),并可以通過event.target屬性直接定位A_mc,真是簡單的不能再簡單了。(請盡量以正規(guī)方法為主,不推薦頻繁使用,不是好的編程習(xí)慣)

(2)2.0中,偵聽器的記憶是"有毛病"的。如果是新手,會經(jīng)常覺得偵聽器函數(shù)的this關(guān)鍵字指向飄忽不定,常常弄錯。而且看看高手的代碼,一會兒是Object做偵聽器,一會兒是function做偵聽器,真是讓人頭痛。其實MacroMedia也很頭痛,所以就出了Delegate這個官方類(補?。浚﹣斫鉀Q這些問題。
(3)偵聽器注冊方式也有兩種,一種是addListener(),如Key,一種是addEventListener(),如UIComponent類。為什么要這樣搞兩種?MacroMedia無辜的望著我,喃喃道偶也不完全清楚。
超人來了,那就是ActionScript 3.0事件處理機制:
(1)統(tǒng)一。全部一色用addEventListener().
(2)所有的可視對象都可以接受和發(fā)送事件。
AS3.0的類繼承設(shè)計是深思熟慮的,所有的可視對象所屬類都是DisplayObject的子類, DisplayObject又是EventDispatcher的子類。因此它們就都可以玩Event了,所以說,有個好的老子就是好啊。
而且有了嶄新的事件冒泡機制,可以使事件層層上遞到最上層的Stage,絕好的功能!
有了以上兩點:[1b]
黑羽
[/1b]的EventSender類也可以歇菜了。
(3)偵聽器統(tǒng)一使用Function,不再使用Object了。 同時this關(guān)鍵字的記憶力“大大增強”,Delegate類也可以下崗了。
Event涉及到的內(nèi)容極多,面很廣。下面[1b]
黑羽
[/1b]將從以下幾個方面講起:
一、如何接收事件?如何做到AS3.0的標(biāo)準(zhǔn)事件編程。
二、如何發(fā)送自定義事件?如何在OOP中正確使用AS3.0強大靈活的事件架構(gòu)。
三種方式及其優(yōu)劣,以及在何種情況下使用。
(1)用繼承EventDispatcher實現(xiàn)
(2)用復(fù)合EventDispatcher實例來實現(xiàn)。
(3)用接口IEventDispatcher實現(xiàn)
三、如何使用冒泡機制(即官方所稱的Event Flow機制)?以及冒泡機制的原理。
四、Event的其他高級應(yīng)用。
本文轉(zhuǎn)自:http://www.5uflash.com/flashjiaocheng/Flash-as3-jiaocheng/1761.html

AS3.0教程:強大的事件機制(1)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美毛片大全 | 国产成人精品无缓存在线播放 | 精品国产精品国产偷麻豆 | 婷五月天 | 日本一级淫一片免费 | 97av在线播放 | 免费毛片网 | 色狠狠狠色噜噜噜综合网 | 99久久99久久久精品齐齐鬼色 | jizzz亚洲美女 | 成人性视频网站 | 91国内视频 | 久久亚洲一级α片 | 国产成人禁片免费观看视频 | 亚洲免费播放 | 免费看片黄 | 亚洲高清国产一线久久 | 四虎最新永久在线精品免费 | 久久手机免费视频 | 欧美一级xxxxⅹ毛片 | 老外黑人欧美一级毛片 | 最近中文2019视频在线 | 加勒比啪啪 | 免费观看大片毛片 | 日本一级特级毛片视频 | 国产精品白丝喷水在线观看 | 91国视频 | 国产欧美一区二区精品性色 | 亚洲码和乱人伦中文一区 | 96精品视频在线播放免费观看 | 人人澡人人澡人人看欧美 | 久久er国产精品免费观看2 | 国产片欧美片亚洲片久久综合 | 热久久视久久精品18国产 | 国产精品亚洲一区二区麻豆 | 久久精品国产第一区二区 | 麻豆国产精品免费视频 | 欧美一级永久免费毛片在线 | 国产成人久久精品区一区二区 | 国产一二三区在线 | 亚洲国产精品看片在线观看 |