2007/06/27

onEnterFrame特性

在第一個影格


var a=1;
_root.onEnterFrame = function(){
    trace(a);
}
a=3;


在第二個影格


a=2
_root.onEnterFrame = null;


結果


3
3
3
3
3
……


解說


原因是程式碼在畫面載入之前執行,而.onEnterFrame是在畫面載入前執行。所以第一個影格並不會印出1,而是印出a最後的值3。因此可以知道_root.onEnterFrame = function放在程式碼的哪一個位置是沒有關係的。因為它是該影格最慢執行的函式。



雖然第二個影格的a被指定為2,但是來不及執行.onEnterFrame指定的函式,他就被移除了,所以始終不會印出2。



照著走一次


影格一
var a=1;
a = 3
trace(a);
畫面載入
影格二
a=2
_root.onEnterFrame = null; //onEnterFrame在這裡被移除了,所以第二個影格永遠不會印出a
畫面載入
影格一
….

Blogged with Flock

No comments: