问题很简单,但我无法弄明白。
例如我有字符串变量ts。我的加载器在movieclip实例中加载图像后,我想将ts值更改为某些内容。问题是 - 我的doneLoad函数没有改变ts值。这是代码
var ts:String = "loading";
var imgload = new Loader();
imgload.load(new URLRequest("http://images.op.com/cards/up1x3941204.jpg"));
imgload.contentLoaderInfo.addEventListener(Event.COMPLETE,doneLoad);
function doneLoad(e:Event):void {
ts = "done";
}
trace(ts); // returns "loading"
有什么问题?
答案 0 :(得分:1)
您的问题是trace(ds)
在函数doneLoad
运行之前被调用。
doneLoad是一个回调函数,直到ofater完成后才会运行。您对trace(ds)的调用不在回调范围内,因此一旦应用程序启动(或其余代码运行),就会立即运行。因此,当调用trace时......值仍然是“正在加载”。
将您的代码更改为:
var ts:String = "loading";
var imgUpload:Loader = new Loader();
imgload.load(new URLRequest("http://images.op.com/cards/up1x3941204.jpg"));
imgload.contentLoaderInfo.addEventListener(Event.COMPLETE,doneLoad);
function doneLoad(e:Event):void
{
ts = "done";
trace(ds);
}