blog.Ring.idv.tw

變數範圍-「loadVariables」vs.「loadVariablesNum」

變數範圍-「loadVariables」vs.「loadVariablesNum」

想要從Flash載入外部資料,其實有許多樣的方式可以善加利用,譬如:「loadVariables」、「LoadVars」、「XML」等…

然而這些從外部載入進來的資料,必然有其自己所屬的變數範圍,所以本文將探討「loadVariables」vs.「loadVariablesNum」兩者的差異~

「loadVariables」vs.「loadVariablesNum」的差異

ActionScript 2.0 Language Reference的文件說明中,我們大概即可得知兩者間的不同,整理如下:

Global Function

loadVariables(url:String, target:Object, [method:String]) : Void

loadVariablesNum(url:String, level:Number, [method:String]) : Void

MovieClip Method

loadVariables(url:String, [method:String]) : Void

從上述我們可以知道「loadVariablesNum」是「Global Function」,而「loadVariables」則有「Global Function」和「MovieClip Method」兩種,接著我們再來推論載入的方式。

「_root == this」&「this == _level0」&「_level0 == _root」

請將下述程式寫在Frame[1]:

trace(_root == this);
trace(this == _level0);
trace(_level0 == _root);

結果為:

true
true
true

從結果即可證明「_level0」、「_root」和「this」三者之間都是指向同一個「MovieClip」,所以我們即可推論下述的載入方式都是相同的:

loadVariablesNum("test.txt",0);
loadVariables("test.txt",_level0); //Global Function
loadVariables("test.txt",this); //Global Function
loadVariables("test.txt",_root); //Global Function
_level0.loadVariables("test.txt"); //MovieClip Method
this.loadVariables("test.txt"); //MovieClip Method
_root.loadVariables("test.txt"); //MovieClip Method

為何需要「loadVariablesNum」

從上述的論點再來推測,我們是否可以直接執行「loadVariables("test.txt",_level1)」或「_level1.loadVariables("test.txt")」來取代「loadVariablesNum」呢?

答案是「否定的」~為何如此?我們來看下述這個範例:

trace(typeof(_level0));
trace(typeof(_level1));

結果:

movieclip
undefined

從上述的結果來看,「_level0」這個「MovieClip」早就存在於Flash Player裡頭了,然而「_level1」卻仍然尚未被定義的~

也就是說執行「loadVariables("test.txt",_level1)」或「_level1.loadVariables("test.txt")」,並不會為我們在「_level1」建立一個「MovieClip」,我們必須利用「loadVariablesNum("test.txt",1)」才行!!所以無論是「loadVariables」或「loadVariablesNum」,它們的變數範圍其實都隸屬於實體(時間軸)變數

最後只要了解「Layer」、「Level」和「Depth」之間的三角關係(四),以及本文所推論及驗證的一些觀念,相信你一定可以自由運用「loadVariables」和「loadVariablesNum」。

2007-06-23 17:28:52

Leave a Comment

Copyright (C) Ching-Shen Chen. All rights reserved.

::: 搜尋 :::

::: 分類 :::

::: Ads :::

::: 最新文章 :::

::: 最新回應 :::

::: 訂閱 :::

Atom feed
Atom Comment