Flex加载图片时会闪的问题
先说我要的吧,我的目的是,加载100张图片,顺序起来是一个连续动作。但是我想要点一下按钮马上播放下一张。但是在过度的时候遇到问题了。超级困惑。imgSrc="images...
先说我要的吧,我的目的是,加载100张图片,顺序起来是一个连续动作。但是我想要点一下按钮马上播放下一张。但是在过度的时候遇到问题了。超级困惑。
imgSrc="images/"+i+".jpg";//大概是这样的路径
<mx:Image source="{imgSrc}" id="img"/>
因为我要的是我点击按钮之后刷新另一张图片i++,
结果刷新是刷新了,但是中间加载的时候就会有白色背景突然闪过,之后才加载出来新的图片。
我试过了用两个<Image>,一个放上层一个放下层,等上层加载完了再改变下层的<Image>。也试过了用一张背景图。
但是还是不理想。中间的过度不平滑。
也不知道我说清楚没。希望有人能解答我的问题,满意的话多多加分。
或者有没有一种方法能够把我要用的图片加载到flex生成的swf里,方便使用,就好像flash里的“库”一样。
我看过有[Embed]方式的但是我有很多张图片 总不能一张张的embed吧。
我是新手 希望大家多多帮助。纯粹乱抄复制别人答案的,将会受到诅咒。
如果我说的不清楚请发消息给我,非常感谢!!!我用的是Flex Builder3 展开
imgSrc="images/"+i+".jpg";//大概是这样的路径
<mx:Image source="{imgSrc}" id="img"/>
因为我要的是我点击按钮之后刷新另一张图片i++,
结果刷新是刷新了,但是中间加载的时候就会有白色背景突然闪过,之后才加载出来新的图片。
我试过了用两个<Image>,一个放上层一个放下层,等上层加载完了再改变下层的<Image>。也试过了用一张背景图。
但是还是不理想。中间的过度不平滑。
也不知道我说清楚没。希望有人能解答我的问题,满意的话多多加分。
或者有没有一种方法能够把我要用的图片加载到flex生成的swf里,方便使用,就好像flash里的“库”一样。
我看过有[Embed]方式的但是我有很多张图片 总不能一张张的embed吧。
我是新手 希望大家多多帮助。纯粹乱抄复制别人答案的,将会受到诅咒。
如果我说的不清楚请发消息给我,非常感谢!!!我用的是Flex Builder3 展开
2013-09-25
展开全部
出现上面问题应该是新图片还没完成显示就把旧图片remove了
监听新加载的图片事件,在新加载的图片被加载到舞台并完成显示后再删除旧的图片。
loader.addEventListener(Event.COMPLETE,completeHandler);
function completeHandler(e:Event):void
{
var pic = e.currentTarget.content;
pic.addChildEventListener(FlexEvent.CREATION_COMPLETE,creationHandler);
addChild(pic);
}
function creationHandler(e:FlexEvent):void
{
delOldPic();//删除旧图运档数片
}
function delOldPic():void
{
}
大概思路就是这样,或许代码有点问题,自己测试下。
如果在creationHandler里删旁首除图片还是不行,在新pic加个EnterFrame,相当于creationComplete(callLater(delOldPic)),这样一定没问题 .
想要把图片编译成swf再一次行加载也是可以滴,不过内存会猛涨,而且第一次加蠢搭载图片库swf会很慢。如果非要这么做建议用flash cs把图片编译进去,用flex就太大了。
监听新加载的图片事件,在新加载的图片被加载到舞台并完成显示后再删除旧的图片。
loader.addEventListener(Event.COMPLETE,completeHandler);
function completeHandler(e:Event):void
{
var pic = e.currentTarget.content;
pic.addChildEventListener(FlexEvent.CREATION_COMPLETE,creationHandler);
addChild(pic);
}
function creationHandler(e:FlexEvent):void
{
delOldPic();//删除旧图运档数片
}
function delOldPic():void
{
}
大概思路就是这样,或许代码有点问题,自己测试下。
如果在creationHandler里删旁首除图片还是不行,在新pic加个EnterFrame,相当于creationComplete(callLater(delOldPic)),这样一定没问题 .
想要把图片编译成swf再一次行加载也是可以滴,不过内存会猛涨,而且第一次加蠢搭载图片库swf会很慢。如果非要这么做建议用flash cs把图片编译进去,用flex就太大了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询