Re: [問題] function問題
※ 引述《JustMyLuck (0.0)》之銘言:
: 所以function先寫後寫都沒差,只是個人習慣的不同而已嗎?
要知道,在影格上面寫的程式
到最後還是會被轉換成標準的AS3 class格式才開始編譯
例如,在第二個影格寫
addEventListener(Event.ENTER_FRAME, listener);
function listener(e:Event):void { trace("yo"); }
或者
addEventListener(Event.ENTER_FRAME, listener);
function listener(e:Event):void { trace("yo"); }
在影格中定義的function,會被轉換成class定義中的private function
而其餘程式碼,每個影格都會被放到獨立的private function中
最後在constructor用addFrameScript將其跟MovieClip架起關聯
在編譯前,Flash Professional會先產出以下AS檔
(省略了一些東西&未經語法測試)
public class Main extends MovieClip
{
public function Main()
{
addFrameScript(2, frame2Script);
}
private function frame2Script():void
{
addEventListener(Event.ENTER_FRAME, listener);
}
private function listener(e:Event):void
{
trace("yo");
}
}
在class scope裡面,function沒有誰先定義的問題
每個function都可以呼叫其他function的
這也就是為什麼書中的兩種寫法都可以正常編譯的原因
因為到頭來產生的AS檔裡面的class定義
function定義的先後順序是沒有任何影響的
另外,請練習把程式寫在外部AS檔中
這是將視覺模組與行為模組分離的好習慣
--
Blog http://blog.cjcat.net
Gallery http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 174.61.205.195
※ 編輯: cjcat2266 來自: 174.61.205.195 (09/24 02:08)
推
09/26 11:33, , 1F
09/26 11:33, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):