Re: [問題] function問題

看板Flash作者 (CJ Cat)時間11年前 (2012/09/24 02:08), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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
soga
09/26 11:33, 1F
文章代碼(AID): #1GNr0Glu (Flash)
討論串 (同標題文章)
文章代碼(AID): #1GNr0Glu (Flash)