2013-12-08 31 views
-1

我基本上是ActionScript的noob,並且遇到了問題。我想將文本文件中的變量加載到我的電影的_root中。比如,文本文件包含&var=value&var2=value2&,我希望它們直接進入_root,以便我可以將它們稱爲_root.var_root.var2。 首先,我嘗試使用明顯的解決方案,loadVariables。我已經做到了通過以下功能:ActionScript:從文本文件加載變量到_root

function getState (save){ 
    //loadVariables("getstate.php?save="+save, "/"); 
    loadVariables("state.txt, "/"); 
} 

我試着加載它爲「_root」,而不是「/」,但仍然一無所獲。該請求被髮送,但文本文件的內容在通往我的代碼的途中在超空間中丟失。

所以我嘗試使用LoadVars而不是loadVariables。這個功能令我感到失望,因爲沒有把變量傾銷到_root的選項,但我決定嘗試它。這裏是我的功能看起來像用的LoadVars:

function getState (save){ 
    varReceiver = new LoadVars(); 
    varReceiver.onLoad = function(){ 
     varsRecieved=true; 
     _root.notloggedin = this.notloggedin; 
     _root.nostate = this.nostate; 
     _root.saveName=this.saveName; 
     //and lots of other variables 
     trace (_root.saveName); 
    }; 
    varReceiver.load("state.txt"); 
    trace (_root.saveName); 
} 

跟蹤是內部的onLoad函數返回正確的值,但它後一個返回undefined。我試着等待的onLoad與這個循環發生:

while (varsRecieved != true){ 
    trace ("not yet..."); 
} 

其中發送閃存進入死循環。

我會很感激在這個問題上有所幫助=)

回答

1

把需要的信息已經在單獨的功能被加載並調用該函數在onLoad處理程序結束後要執行的代碼:

function getState (save){ 
    varReceiver = new LoadVars(); 
    varReceiver.onLoad = function(){ 
     _root.notloggedin = this.notloggedin; 
     _root.nostate = this.nostate; 
     _root.saveName=this.saveName; 
     //and lots of other variables 
     trace (_root.saveName); 
     doRest(); 
    }; 
    varReceiver.load("state.txt"); 
} 

function doRest() 
{ 
    // ... 
} 

注意getState()將返回已加載的信息之前,因此現有的代碼可能有被移動到doRest()

+0

謝謝,但這並沒有多大幫助,因爲信息加載後需要執行的代碼遍佈在我的電影中,不可能適合一個函數。 – Mints97