2017-01-25 5 views
2

私の問題は、関数内のトレースは配列の最初の要素をトレースしますが、関数がそうでない場合はトレースをトレースすることです。関数の外で配列変数を宣言しますが、データは配列変数に保存されません。Actionscript 3:配列内の要素としてのテキストファイルからの各行

var oppgaveLoader:URLLoader = new URLLoader(); 

oppgaveLoader.load(new URLRequest("oppgaver.txt")); 
var oppgaveNr = 0 
//store line of text on an array called oppgaver 
var oppgaver:Array = [] 
var oppg:Array = new Array() 
oppgaveLoader.addEventListener(Event.COMPLETE, onLoaded); 

function onLoaded(e:Event){ 
    oppgaver = e.target.data.split(/\n/) 
    trace(oppgaver[0]) //This one traces the frist item in the array 
} 
trace(oppgaver[0])//This one does not trace the first one in the array 

誰にもわかりやすい理由があるかどうか、またそれを修正する方法は誰にも分かりますか? "oppgaver.txt"ファイルはmy .flaファイルと同じディレクトリにあります

"oppgaver.txt"ファイルはこのように配置されています(テキストはノルウェー語ですが、各行はa配列内の項目):

Hvor gjelder forbudsskilt hvis ikke annet er oppgitt? 
Hvordan foretar du best mulig bremsing og unnastyring? 
Hvordan bør du normalt plassere bilen på en vanlig 2-felst vei? 

答えて

1

これは同期性の問題です。

最後のtraceは、アレイを設定した直後に発生しますが、それらの配列はまだ空です。

onLoaded関数が呼び出されるのは、URLLoaderによってasynchronouslyが呼び出されたときにのみ、数値が取り込まれ、その値をトレースできます。

イベントリスナーは、基本的に、将来発生するイベントに反応することができます。

+0

ありがとう、私はあなたが私にそれを知らせた –

関連する問題