看板 Flash 關於我們 聯絡資訊
上圖層的code先執行這個概念是正確的 但是"var, function"的部分都會先執行完畢 "="的則是照圖層順序執行 這個跟物件導向概念的的class有關 在影格上面宣告的變數和函式 其實相當於在一個class定義裡宣告property與method 所以如果在影格上面寫 //上塗層 function print():Void { trace(i is Number); } //下圖層 print(); var i:Number = 1; 相當於這樣的class定義 class MyMovieClip { //constructor public function MyMovieClip() { print(); i = 1; } public function print():Void { trace(i is Number); } public var i:Number; } 這樣會印出true,只是在印true的時候i還沒給定值 但是不會出錯,因為print()可以存取到i 如果你對class有一定的認知 那應該看得出來function print()和var i:Number 誰先寫是沒有差別的 在class定義裡面的property和method宣告的scope(有效範圍)是整個class都有效 以你提供的範例 array = new Array() 應該還是要寫在 array.push() 前面 因為array沒有先指到一個物件,其值還會是null,會出錯 -- CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓 Blog http://cjcat.blogspot.com Gallery http://cjcat2266.deviantart.com ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.75.147 ※ 編輯: cjcat2266 來自: 61.228.75.147 (04/03 11:29)
Lawnchern:感謝 04/03 13:18