FLASH 加载和调用外部图片的问题
如图:想不通为何先执行了loading外部语句后执行内部的语句?我本意是通过输入index来控制加载哪张图片,并返回出来一个由图片显示的SimpleButton按钮,如果...
如图:想不通为何先执行了loading外部语句后执行内部的语句?我本意是通过输入index来控制加载哪张图片,并返回出来一个由图片显示的SimpleButton按钮,如果您有更好的方法,请不吝赐教,谢谢啦大神。
展开
展开全部
跟你解释一下,其实flash的这些装载操作全是异步的,
当你loader.contentLoaderInfo.addEvent......
这句执行完毕之后,它就会直接运行下一句return button;(所以trace(22222...)的时候button还是null)
as3此时并没有按照你的意思 先等图片加载完毕,初始化button,再返回
当图片加载好了,运行loading函数之后,其实整个addData函数早就已经执行完返回了。
所以对这种操作,可以这么干:
public function addData(index:uint, onComplete:Function):void{
....//一切照旧
function loading(e:Event):void{
...//一切照旧
button = new SimpleButton(bitmap, bitmap, bitmap, bitmap);
onComplete(button);
}
}
解释一下,把一个要操作这个按钮的函数当作参数传进去(onComplete),在加载完成的时候执行,这样无论是什么时候加载完成的,都可以调用这个函数。
上例用法:
var cData:C_Data = new C_Data();
cData.addData(10, addBtn);
function addBtn(btn:SimpleButton):void{
addChild(btn);
btn.x = xxx;
......
}
于是当按钮初始化完成之后,执行onComplete函数即 第二段代码中的addBtn函数,按钮就放到显示列表上去了,还可以进行别的操作
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询