AS2.0越看越象C#,JAVA.除了語法的定義相似.就連class類也能做成package(土語: 自定義包),可集成你所有的自定義函數(shù).方法.甚至組件擴展.包括引入FLASH的各 種類包.還是寫個很簡單的入門例子:
在自己的flashmx2004目錄Flash MX 2004\en\First Run\Classes\里建立myclass 目錄和子目錄test,然后寫個小的class文件,存入這個新建目錄 mytest.as class myclass.test.mytest { function addnum(num:Number):Number { return (num*2); } }
然后建立一個fla,在第一幀寫: import myclass.test.mytest; var my:mytest = new mytest(); trace(my.addnum(10)) //應返回mytest類下addnum方法的值20
以上是只有一個類的package的引用.這個package是存放在flash 主要class文件目錄下myclass\test\目錄里的 import myclass.test.mytest 作用是引用這個 package包.并且編譯.下面我們再寫一個class也放在這個myclass\test\目錄里: mytest2.as class myclass.test.mytest2 { function addnum(num:Number):Number { return (num*num); } }
然后,建立一個fla在第一幀寫上: import myclass.test.*;
var my:mytest = new mytest();
var my1:mytest2 = new mytest2();
trace(my.addnum(10)) //這里返回的mytest類里的方法addnum的返回值20 trace(my1.addnum(10)) //這里返回的mytest2類里的方法addnum的返回值100
很顯然.我用一個import myclass.test.* 把這個package下的兩個class都能引入.并且能使用它們的各自方法.它們的方法名字一樣.但執(zhí)行的是各自class里的方法.
這個例子很簡單,只是一個引路.你理解的話.能發(fā)揮的更好.比如.使用類擴展,超類,甚至可以嵌套FLASHCLASS包里的任何公共類.關于類擴展.超類,嵌套可以看前些天寫過的.經(jīng)典已經(jīng)集中起來了.
下面有幾個注意:
1,寫好自己的類集合做成package時.如果放在Flash MX 2004\en\First Run\Classes\目錄后.你要重啟一下你的FLASHMX2004.才能在你的fla 里引用你自己的package
2.如果其間你打開你的package里的class文件,改變里面的內容后.也要保存后.重新啟動FLASHMX2004.需要重編譯,不然你的fla將不會引用新改變的內容.
3,如果我不放在Flash MX 2004\en\First Run\Classes\目錄的,能不能建立在別的 目錄.當然可以.不過你得要在PUBLISH SETTINGS里設置你的AS文件package 包引用目錄.詳情可看小混蛋同志寫的ActionScript 新手調試.
4.關于AS2.0的編寫代碼要求很嚴格.和JAVA.C#一樣. 大小寫很重視.并且,在你自 定義Class時要注意定義類形和返回類形.這里提醒一下用 SciTEFlash寫代碼的朋 友.有個bug,就是寫function這個關鍵字時.SciTEFlash是大寫的Function,會在AS2.0 中出現(xiàn)錯誤.我是N久才發(fā)現(xiàn)這個問題.
出處:藍色理想
責任編輯:藍色
◎進入論壇Flash專欄版塊參加討論
|