現在我們已經知道怎麼把寫再影格中的as程式碼寫到外部的as檔案中,並且再輸出時引用它
這個章節我們針對as檔案的內容架構作說明
我們先來看一下as檔案範例內容
package
{
import flash.display.MovieClip;
public Main class extends MovieClip
{
public function Main()
{
stop();
}
}
}
為了方便辨識,我用不同顏色把區塊標示出來
你會發現,實際上我們需要撰寫在這個影格上as程式程式只有藍色的stop()指令而已
不過我們再撰寫外部as檔案時,卻要多寫一大堆架構性質的框架,而且這些框架有著嚴格的規定,如果沒有依照規定來撰寫,程式將會產生錯誤..
感覺似乎相當複雜,其實你只要瞭解框架中每個語法的意義,其實是相當容易理解它的
以下阿Cain老師將對框架的內容一一位各位作說明
首先看最外部的紅色字內容
package
{
impo......(裡面先不管他,之後再說明)
}
package(包裹),外加一組大括號
as檔案中的所有程式碼必須都包覆在這個大括號裡面,你可以把它像成一個程式包,我們把所有的程式都寫在裡面,這部分應該不難理解(別問我為什麼要包,因為這是規定)
如果你有開過別人寫的as檔案,你還會看到以下的語法
package cain
{
...一堆看不懂的程式碼
}
你會注意到package的關鍵字後面多了一個cain....(或是其他的辭彙)
一般來說我們的as檔案會跟你的fla檔案放在同一層的目錄下面,flash才能正常對應到它
但是有時候,一個專案往往會讓你撰寫非常多的as檔案,這時候如果沒有好好的作整理,整個專案目錄的資料內容將會相當混亂...
最好的方法應該是將眾多的as檔案,分門別類放到不同的資料夾裡面,方便以後作整理,但是現在問題來了,當我們開個新的目錄,把as檔放進去並輸出時,你會發現你的fla已經對應不到as程式了,其原因就是 package { } 其實就是指定程式包裹的路徑,package後面有沒有加東西直接加{}代表著放在與fla同一層目錄裡...
寫到這裡我想你應該知道那如果寫成以下代表著麼意義了吧!
package cain
{
...一堆看不懂的程式碼
}
package後面的cain代表,代表這支as檔案將放在cain這個目錄裡面
再舉個例子,如果寫成以下
這樣你的fla檔案才能正確對應到的as檔,當然你還是可以按下欄位右邊的筆型按鈕來驗證是否有對應到你的as檔案再舉個例子,如果寫成以下
package cain.myaction
{
...一堆看不懂的程式碼
}
package後面的多了 cain.myaction , 這並不是放在cain.myaction這個目錄裡面的意思," . "這個符號再as3裡面有著相當重要的地位,這點之後你會瞭解...
cain.myaction代表著這支as程式碼是放在 cain 目錄裡的 myaction 目錄裡面,如果這支程式名子叫做Main.as,那它的位置應該是在 cain/myaction/Main.as 才對
瞭解了以上用法package,你應該可以把你的as檔案放在你想放的任意位置了
cain.myaction代表著這支as程式碼是放在 cain 目錄裡的 myaction 目錄裡面,如果這支程式名子叫做Main.as,那它的位置應該是在 cain/myaction/Main.as 才對
瞭解了以上用法package,你應該可以把你的as檔案放在你想放的任意位置了
如果你的程式放在package cain.myaction {} , 類別欄位就是填上cain.myaction.Main 就行了fla輸出時會自動去 cain/myaction/Main.as 這個地方找檔案
以下一些地方還是要提醒你
1.注意大小寫cain跟Cain不同...main跟Main不同
2.as檔案的路徑絕對都是相對於你的fla檔案,請不要將你的fla檔案隨便亂放
另外再釐清一個觀念
當你把你的fla檔案正確輸出成swf時,你會很清楚你只要把swf上傳倒主機裡就行了,但是sa檔案需要傳上去嗎?
其實你的swf就是fla+as檔案,所以你上傳了swf等於是你傳了fla+as檔案,所以你的as檔案不需要再上傳一次
另一點很重要的,也是有很多初學者常常忽略的....如果你的as檔案有修改任何東西,請你的fla也要再輸出一次,這樣你修改後的as檔案才算是有正確崁入你的swf檔案
範例下載
沒有留言:
張貼留言