2016-07-11 16 views
-1

私は非常に困惑しています。誰かが私をここで助けてくれることを願っています!関数の外から "time"という名前の変数を呼び出そうとしています。ここで関数の外部から変数を呼び出す

は私のコードです:ここでは

var myXML:XML = new XML(); 
var XML_URL:String = "time.xml"; 
var myXMLURL:URLRequest = new URLRequest(XML_URL); 
var myLoader:URLLoader = new URLLoader(myXMLURL); 
myLoader.addEventListener(Event.COMPLETE, xmlLoaded); 

var time; 
function xmlLoaded(event:Event):void 
{ 
    time = XML(myLoader.data); 
} 

trace(time); 

は私のXMLは

<time>10</time> 

のように私は、トレース(時間)を実行するたびに見えるものです。関数の外側 - 出力ウィンドウに "undefined"というメッセージが表示されます。私は、私はこのような別の変数に割り当てることができ、私の関数の外から変数「時間」にアクセスするにはどうすればよい

var VIDEOS_SECONDS = time;

は、任意の助けのためにどうもありがとうございます!

ティモシー

+0

[関数の外AS3アクセス変数]の可能な重複(http://stackoverflow.com/質問/ 38271403/as3-access-variable-outside-of-function) – akmozo

答えて

0

そのほとんどが正しいよう、問題は、xmlファイルを非同期でロードされていて、それが同期ロードを期待しています。

time = XML(myLoader.data);の直後にtrace(time)を移動すると、期待値が表示されます。あなたは最初にロードされたデータに依存しているあなたのコードの残りのセットアップにそのCOMPLETEハンドラから別の関数を呼び出すことができます。

var myXML:XML = new XML(); 
var XML_URL:String = "time.xml"; 
var myXMLURL:URLRequest = new URLRequest(XML_URL); 
var myLoader:URLLoader = new URLLoader(myXMLURL); 
myLoader.addEventListener(Event.COMPLETE, xmlLoaded); 

var time; 
function xmlLoaded(event:Event):void 
{ 
    time = XML(myLoader.data); 
    trace(time,new Date()); 
    //time is ready here 
} 
//although time is global, xml hasn't loaded at this point yet, check timestamps 
trace(time,new Date()); 
+0

ジョージ。早速のお返事ありがとうございます。私はちょっとあなたが言っていることを理解していますが、これをほぼ完了しましたが、VIDEOS_SECONDS_GAP =時間にはどのように "時間"を取得するのですか?VIDEOS_SECONDS_GAPは "3"と等しいですが、私はxmlファイルから変更することができます。これが理にかなってほしい! –

+0

OK!私は別の機能を追加しました!私はこれについてどうやって行くのですか? - http://i.stack.imgur.com/K08GM.jpg –

+0

コードスニペットと別の質問をテキストとして投稿できますか? –

関連する問題