?Document Class,中文直譯為“文檔類”。顧名思義,就是和文檔綁在一起的類。
文檔是啥?就是要和這個類綁在一起的Fla文件。
[1b]什么用處[/1b]?
這個玩意兒根本目的就是想把AS代碼和Flash設計完全剝離。
從此,Fla里面只管設計,邏輯代碼全部由外部的類來包辦。
對于設計者和新手,黑羽可以打個比方,就好比[1b]三步走:[/1b]
1.把Fla里面所有代碼集中到第一幀,
2.再把第一幀里的代碼拷貝到外部的一個as文件里。
3.再按照AS3.0的形式,把這些代碼放到這個類的構造函數里去。再根據這些個代碼抽出一些類的屬性和方法就OK了。
唔,這個比喻有很多小毛病。但比較直觀,比較好理解,一步步來。
等你明白有哪些小毛病了,你已經不需要這個破比喻了。
對于程序開發者(比如c#)
Document Class就好比一個Entry,它的構造函數就相當于一個main函數。
[1b]教程相關例子下載[/1b]:
[1b]點擊下載[/1b]
[1b]先來一個例子:[/1b]
上次建立的KingdaMC.fla和KingdaMC.as還在吧?
刪了?重來一遍吧,本次要用到fla里面的加好鏈接類的元件,以及相關的KingdaMC類文件。
[1b]我們干兩件事:[/1b]
1.新建一個Document Class類。
2.用上之前的那個Kingda.fla,綁定Document Class
[1b]1.新建一個as文件,命名為KingdaMCDocumentClass,記得要和fla在同一目錄下:
[/1b]輸入如下代碼:
//因為在統一目錄下,所以package后面沒有路徑
package {
?? import flash.display.MovieClip;
??
?? public class KingdaMCDocumentClass extends MovieClip {
????? private var tempMC:KingdaMC; //臨時變量,持有當時創建的KingdaMC的引用。
????? private var MAX_MCS:int = 10;? //最多創建的KingdaMC數目
?????
???? //構造函數,和類同名,在AS3.0中必須為public。不能用private,protected或者自定義的namespace
????? public function KingdaMCDocumentClass() {
???????? var i:int;? //新的數據類型int,只要是整數,就請用int。效率快過Number。
???????? for (i = 0; i
它要干的事很簡單,就是用我們之前的KingdaMC類在舞臺上創建十個KingdaMC實例,大小隨機,位置隨機。
[1b]2.用上之前的Kingda.fla,綁定KingdaMCDocumentClass。
[/1b]確保庫中已有設好KingdaMC類鏈接的symbol。
?
設置方法如圖:
[url=/Files/BeyondPic/2006-9/10/01.gif]

點擊放大[/url]
先把第一幀代碼全部刪掉。Ctrl+Enter測試一把。是不是有十個MC出來啊。
然后再像圖中那樣加上第一幀代碼,和舞臺元件樂一樂。就是不按照Document Class規矩干干,呵呵。
[1b]那么它到底是什么?[/1b]
簡單的說,是一個用來取代原有散亂的時間軸代碼的標準解決辦法。
當一個Fla文件被編譯時,Document Class就被主動建立了。我們可以理解為Flash IDE偷偷加上了如下代碼:
?
?
這樣的好處是所有的時間軸邏輯都剝離到Document Class類文件中,一旦成為一個獨立的類文件,那么很方便的可以和CVS軟件結合起來。對團隊合作(Designer + Coder)來說是一大利好。對新手和小項目來說,沒什么優點和必要。
本文轉自:http://www.5uflash.com/flashjiaocheng/Flash-as3-jiaocheng/1732.html
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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