推 Lawnchern:感謝 04/03 13:18
上圖層的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)