2012-09-07 50 views
0

我使用Swishmax 4,我想從閃存的外部txt文件加載一個變量。
我創建了一個動態文本來加載我的變量。它運作良好,但是當我想跟蹤變量時,我得到一個未定義的值。這裏是我的代碼:我得到未定義的值當跟蹤一個變量加載從Flash中的文本文件as2

file.txt的

&cont=data 

代碼

onFrame (1) { 
    this.loadVariables("file.txt"); 
    trace(cont); // i get an undefined value here 
} 

我該怎麼辦?

回答

0

我真的不知道爲什麼,但我修改劇本這和它的正確調試

onSelfEvent (load) { 
    this.loadVariables("file.txt"); 
} 
onFrame (3) { 
    trace(cont); 
} 
0

你不符合規範那是什麼file.txt的內容,也不如果是在同一文件夾作爲swf本身。 但是,您應該始終考慮,加載過程需要一些時間,所以您不應該指望代碼在遠程服務器上工作(至少,不是第一次運行swf文件)。你如何確定文件在第0幀之前加載(onLoad事件)?實際上你不能。 關於第二個腳本,您稍後嘗試訪問數據,因此很可能已加載數據。

所以你必須找到一種方法來確保文件加載好,並且你有兩種方法來做到這一點:使用loadVars類(推薦)或使用file.txt本身內的另一個變量,並檢查wheter其價值是否定義。的第二方法的一個例子可以是:

文件TXT

&myVar=Hello World!!& 
&yourVar=finally there!!& 
&yourAge=24& 
&loadedDone=1& 

SWI代碼:

onSelfEvent(load){ 
    this.loadVariables("file.txt"); 
} 
onFrame(2){ 
    if(loadedDone!= 1)prevFrameAndPlay(); // Wait till the file is loaded 
} 
onFrame(3){!! 
    // Once the data is loaded, display variable values!! 
    trace(myVar); 
    trace(yourVar); 
    trace(yourAge); 
} 

但這種方法具有這樣的問題,如果變量loadeDone是沒有定義或file.txt不存在,你的swi文件將被卡在無限循環。所以你最好嘗試一下loadVars類或者爲此使用XML。

Regards,cancrexo

相關問題