對(duì)于學(xué)習(xí)FLASH編程的朋友來(lái)說(shuō),類,實(shí)例概念想必也是耳熟能詳了。但是,為了提高AS水平以及OOP的編程風(fēng)格,我們有必要進(jìn)一步深入地理解這些概念,尤其是和像站長(zhǎng)一樣,把AS作為第一門語(yǔ)言,沒(méi)有任何其它編程語(yǔ)言基礎(chǔ)的朋友來(lái)說(shuō),這樣做非常有必要。
對(duì)于類和實(shí)例,網(wǎng)絡(luò)上的各種相關(guān)學(xué)習(xí)參考資源多如牛毛,筆者無(wú)意于引用各種艱深晦澀的專業(yè)術(shù)語(yǔ)來(lái)闡述這個(gè)問(wèn)題,只想通過(guò)筆者的編程心得談一些體會(huì),供朋友們參考。
對(duì)于flash編程來(lái)說(shuō),類是一件文件,以.as結(jié)尾,不管是MovieClip還是Sound,String,以及組件,在安裝目錄中都會(huì)一個(gè)類文件與之對(duì)應(yīng)。這個(gè)類文件中定義了相對(duì)元素的所有屬性,方法,和事件。比如我們?cè)诮M件面板拖一個(gè)Button組件在舞臺(tái)上,那么這個(gè)Button組件就是Button類的一個(gè)實(shí)例,這個(gè)Button組件的所有可用的定義屬性、方法都繼承來(lái)自于Button類文件。
記得筆者初學(xué)AS時(shí)經(jīng)常為樣的操作感到疑惑:將一張圖片按F8轉(zhuǎn)換為影片剪輯,圖片不轉(zhuǎn)換為影片剪輯,在FLASH播放時(shí)照樣可以照樣顯示,為什么一定要轉(zhuǎn)換為影片剪輯?
這是因?yàn)檫@樣做就是把一個(gè)元素,這里是圖片,也可以是其它的東西,比如文本,進(jìn)行封裝,讓它成為MovieClip類的一個(gè)實(shí)例,這樣我們就可以通過(guò)MovieClip類文件中定義的屬性方法和事件來(lái)控制這張圖片。比如我們可以動(dòng)態(tài)改變它的_alpha值,_x值_y值,等等。
MovieClip類中可以很多屬性和事件,性能也足夠強(qiáng)大,但是,如果只拘泥于提供的屬性方法和事件,那么對(duì)于AS編程的理解未免過(guò)于膚淺,大材小用,另外,在很多只使用內(nèi)置屬性往往會(huì)增加編程的難度。
這就要通過(guò)另外一種方法,通過(guò)重新編寫、擴(kuò)展原有的類文件來(lái)實(shí)現(xiàn),就是筆者所謂的“類編程”,比如我們?cè)谟螒蜷_發(fā)中需要?jiǎng)討B(tài)檢測(cè)影片剪加的_x,_y,_alpha三個(gè)屬性之和,我們可以這樣寫:
class mm extends MovieClip
{
?function s ()
?{
??trace (this._alpha +this._y+this._x);
?}
}
保存,然后在畫一個(gè)方塊轉(zhuǎn)換為影片剪輯,實(shí)例名為a ,然后保存FLA到文mm.as的同級(jí)目錄,然后在庫(kù)面板中右擊這個(gè)元件,

? 在AS2.0類文件中輸入mm。這樣我們就把舞臺(tái)上的影片剪輯與我們編寫的類文件相關(guān)聯(lián)了,也就是說(shuō),舞臺(tái)上的影片剪輯成了我們編寫的類的一個(gè)實(shí)例。
在時(shí)間軸幀加入我們?yōu)橛捌糨嫸x的新方法,即可執(zhí)行。
保存這個(gè)文件,以后要在使用同樣方法都可以這樣做,所有繼承此類的影片剪輯都會(huì)一個(gè)新的構(gòu)造函數(shù)S,新的構(gòu)造函數(shù)可以根據(jù)我們?cè)诰幊讨行枰獙?shí)現(xiàn)的效果來(lái)自定義,這樣大大提高了編程的靈活性。
從不會(huì)AS到在影片剪輯上寫代碼是一種進(jìn)步,從在影片剪輯上寫代碼到在時(shí)間軸上寫代碼是一種進(jìn)步,從時(shí)間軸上寫代碼到通過(guò)封裝成類,直接編寫類文件也來(lái)編程也是一種進(jìn)步,只有掌握了OOP編程才真正稱得上是一個(gè)FLASH程序員。
下篇文章,我們將詳細(xì)探討類編程的具體寫法以及和時(shí)間軸編程的區(qū)別,敬請(qǐng)留意。
本文轉(zhuǎn)自:http://www.5uflash.com/flashjiaocheng/Flashaschengxu/502.html
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
