0
ActionScript似乎无法支持同步载入一个PNG。我尝试过异步加载它,但是接着出现让你的函数等待加载完成的问题。我无法做到这一点。我曾尝试在while循环中调用setInterval和setTimout,并在加载完成时中断,但我得到了一些非常神秘的行为。对于函数参数,我传递了一个名为doNothing的函数,它只是一个空函数。当我运行时,setInterval或setTimeout会一遍又一遍,很快。他们不再等待再次打电话之前提供的时间。另外,没有任何东西永远不会被呼叫。如何在ActionScript 3的函数调用中加载并返回.png文件?
这里是我的代码:
private function getData(extension:String):Bitmap
{
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onComplete);
loader.contentLoaderInfo.addEventListener(ErrorEvent.ERROR, onComplete);
loader.load(new URLRequest(baseDir + extension));
while (bitmap == null)
{
var test:Number = setInterval(doNothing, 1000);
}
var ret:Bitmap = bitmap;
bitmap = null;
return ret;
}
function onComplete(event:Event):void
{
bitmap = Bitmap(LoaderInfo(event.target).content);
}
function doNothing():void
{
trace("did nothing");
}
文件加载协议应该有一个您可以绑定的事件,以便您在完全加载时收到通知。你在做什么?请输入密码? – TheZ 2012-07-06 19:09:20
由于Flex使用单线程模型,试图实现类似的东西会导致界面在图像加载过程中冻结 因此,调用getData函数的代码应该监听,而不是直接期待数据。像TheZ说的那样,你想要做什么? – cporte 2012-07-06 19:42:53
是的,这实际上是我需要的。 – user1507613 2012-07-06 19:44:34