王 菊
撫順職業(yè)技術(shù)學(xué)院(撫順 113006)
Action Script(簡(jiǎn)稱AS)發(fā)展到今天,從 AS1.0、AS2.0一直到現(xiàn)在的AS3. 0,隨著版本的增高,其功能也越來(lái)越強(qiáng)。AS3.0的腳本編寫功能超越了AS的早期版本,特別是重新設(shè)計(jì)的事件處理機(jī)制,它旨在方便創(chuàng)建擁有大型數(shù)據(jù)集和面向?qū)ο蟮目芍赜么a庫(kù)的高度復(fù)雜應(yīng)用程序,非常值得深入研究。
AS3.0引入了單個(gè)事件處理模型,替換了以前版本AS中存在的不同事件處理機(jī)制。該新事件模型基于文檔對(duì)象模型(DOM3),是業(yè)界標(biāo)準(zhǔn)的事件處理體系結(jié)構(gòu)。DOM3事件機(jī)制包含著 4個(gè)步驟:注冊(cè)偵聽器、發(fā)送事件、偵聽事件、移除偵聽器,這4個(gè)步驟是按順序執(zhí)行的。
DOM3事件的優(yōu)點(diǎn)在于,事件發(fā)送者和事件接收者的依賴性大大降低。事件發(fā)送者只需要發(fā)送事件對(duì)象,事件接收者只需要接受事件對(duì)象。事件發(fā)送者可以改變自己的外部接口,只需要確保發(fā)送的事件對(duì)象不變即可。事件接收者不關(guān)心事件發(fā)送者是否變化,只需要保證自己能夠正確處理收到的事件對(duì)象即可。
AS3. 0對(duì)所有可視化對(duì)象內(nèi)建了事件機(jī)制:EventDispatcher和 IEventDispatcher是FlashPlayer內(nèi)建的功能對(duì)象,負(fù)責(zé)實(shí)現(xiàn)事件模型,它們同屬于flash.events包。EventDispatcher是IEventDispatcher的一個(gè)具體實(shí)現(xiàn),提供了3個(gè)關(guān)鍵點(diǎn)函數(shù)來(lái)運(yùn)作事件機(jī)制:addEventListener()--注冊(cè)事件監(jiān)聽器,removeEventListener()--移除事件監(jiān)聽器,dispatchEvent()--派發(fā)事件。
AS3.0事件處理過(guò)程是按照事件流的方式來(lái)處理的,事件流的處理過(guò)程分為三大階段:捕獲事件階段、目標(biāo)階段和冒泡階段。
在AS3.0事件處理機(jī)制下,使用其制作全效果腳本支持動(dòng)畫——煙花。
利用Flash的強(qiáng)大的交互功能,制作成依靠鼠標(biāo)左鍵單擊事件在場(chǎng)景內(nèi)燃放隨機(jī)顏色的煙花效果。
(1)事件:鼠標(biāo)左鍵單擊 MouseEvent.MOUSE_DOWN和加載幀Event.ENTER_FRAME
(2)腳本編寫
綜上,在Flash平臺(tái)下應(yīng)用設(shè)計(jì)動(dòng)畫時(shí),必須放棄在各種元件上附加AS腳本的做法只能把所有的腳本寫到幀上去。已經(jīng)習(xí)慣了AS早期版本的用戶起初會(huì)有些不適應(yīng),但是AS3.0的這種做法顯然是值得的。它使腳本代碼的書寫更有條理,功能也更加強(qiáng)大。AS 3.0全部采用addEventListener方法來(lái)注冊(cè)監(jiān)聽器,且監(jiān)聽器必須是函數(shù),監(jiān)聽器的作用域和監(jiān)聽器所在對(duì)象的作用域一致。
AS3. 0針對(duì)其早期版本來(lái)說(shuō),有著很大的優(yōu)勢(shì)。它統(tǒng)一使用 addEventListener()注冊(cè)偵聽事件,大大降低處理事件的難度。且其所有的可視對(duì)象都可以接受和發(fā)送事件。AS3.0的可視對(duì)象所屬類都是DisplayObject的子類,DisplayObject又是 EventDispatcher的子類。
[1]方獻(xiàn)梅,高曉波.AS3.0事件機(jī)制研究[J].科技信息,2009(23).
[2]王風(fēng).XML技術(shù)在 AS3.0語(yǔ)言編程中的應(yīng)用探究[J].計(jì)算機(jī)時(shí)代,2008(11) .
[3]王壽蘋,張金玉.基于Flash CS4中AS3多媒體演示動(dòng)畫的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)教育信息化, 2009(22) .