我无法读取函数中的变量,我想在函数外部使用它,这是我的代码。
var contentLoader:URLLoader = new URLLoader();
contentLoader.load(new URLRequest("http://localhost/data.php"));
function onComplete(event:Event):void
{
var txtu:String = event.target.data;
}
contentLoader.addEventListener(Event.COMPLETE, onComplete);
trace(txtu);
感谢。
答案 0 :(得分:1)
基本上你有一个当前声明为函数本地的变量。你必须在函数之外声明变量,在其中定义了contentLoader变量,然后在函数中赋值。
答案 1 :(得分:1)
这里的问题是trace(txtu)
在contentLoader.addEventListener(Event.COMPLETE, onComplete)
之后立即执行,这意味着它在URLLoader
完成加载之前发生。因此,在这种情况下没有什么可追踪的,因为它还没有被加载。
尝试在onComplete()
末尾调用另一个函数,这将确保外部数据在该点完全加载。
例如:
var contentLoader:URLLoader = new URLLoader();
contentLoader.load(new URLRequest("http://localhost/data.php"));
function onComplete(event:Event):void
{
var txtu:String = event.target.data;
continueWithProgram();
}
contentLoader.addEventListener(Event.COMPLETE, onComplete);
function continueWithProgram():void
{
trace(txtu);
}
答案 2 :(得分:1)
你应该能够解决问题 将结果传递给这样的新方法:
var loaderResult: String;
var contentLoader:URLLoader = new URLLoader();
contentLoader.addEventListener(Event.COMPLETE, onComplete);
contentLoader.load(new URLRequest("http://localhost/data.php"));
// #option 1
function onComplete (event:Event): void {
var txtu:String = event.target.data;
continueWithProgram(txtu);
}
function continueWithProgram (value:String): void {
trace(txtu);
}
或使用事件处理程序之外的变量:
// #option 2
var loaderResult: String;
function onComplete (event:Event): void {
loaderResult = event.target.data;
continueWithProgram();
}
function continueWithProgram (): void {
trace(loaderResult);
}
希望我能解释一下......;)
问候。