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

? 在AS2.0類文件中輸入mm。這樣我們就把舞臺上的影片剪輯與我們編寫的類文件相關聯了,也就是說,舞臺上的影片剪輯成了我們編寫的類的一個實例。
在時間軸幀加入我們為影片剪輯定義的新方法,即可執行。
保存這個文件,以后要在使用同樣方法都可以這樣做,所有繼承此類的影片剪輯都會一個新的構造函數S,新的構造函數可以根據我們在編程中需要實現的效果來自定義,這樣大大提高了編程的靈活性。
從不會AS到在影片剪輯上寫代碼是一種進步,從在影片剪輯上寫代碼到在時間軸上寫代碼是一種進步,從時間軸上寫代碼到通過封裝成類,直接編寫類文件也來編程也是一種進步,只有掌握了OOP編程才真正稱得上是一個FLASH程序員。
下篇文章,我們將詳細探討類編程的具體寫法以及和時間軸編程的區別,敬請留意。
本文轉自:http://www.5uflash.com/flashjiaocheng/Flashaschengxu/502.html
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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