从函数外部调用变量

时间:2016-07-11 15:40:02

标签: actionscript-3

我很难过。我希望有人可以帮助我!我试图调用名为" 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>

每次我运行追踪(时间);在函数之外 - 我得到一个&#34; undefined&#34;输出窗口中的消息。

如何访问变量&#34; time&#34;从我的函数外部,所以我可以将它分配给另一个变量,如:

var VIDEOS_SECONDS = time;

非常感谢您的帮助!

蒂莫西

1 个答案:

答案 0 :(得分:0)

大多数看起来都是正确的,问题是xml文件是异步加载的,你希望它同步加载。

如果您在trace(time)之后立即移动time = XML(myLoader.data);,您应该会看到预期值。您可以从该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());