我很难过。我希望有人可以帮助我!我试图调用名为" 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;
非常感谢您的帮助!
蒂莫西
答案 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());