FLASH 加载和调用外部图片的问题

如图:想不通为何先执行了loading外部语句后执行内部的语句?我本意是通过输入index来控制加载哪张图片,并返回出来一个由图片显示的SimpleButton按钮,如果... 如图:想不通为何先执行了loading外部语句后执行内部的语句?我本意是通过输入index来控制加载哪张图片,并返回出来一个由图片显示的SimpleButton按钮,如果您有更好的方法,请不吝赐教,谢谢啦大神。 展开
 我来答
百度网友9163ed679
推荐于2016-07-13 · TA获得超过109个赞
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:207万
展开全部

跟你解释一下,其实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函数,按钮就放到显示列表上去了,还可以进行别的操作

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式