[]Animation创建和销毁的问题
同样的代码,第一次创建就可以显示动画,然后当使用了Loader.clearRes之后再次创建就怎么都显示不了,是哪里用错了么?求指点
附件里上传了测试工程,打开后先按A键可以看到屏幕有两条鱼,然后再按空格将其彻底移除,然后再按A键就不显示了,以下是代码部分
环境:1.7.17_Beta
语言:as3
附件里上传了测试工程,打开后先按A键可以看到屏幕有两条鱼,然后再按空格将其彻底移除,然后再按A键就不显示了,以下是代码部分
环境:1.7.17_Beta
语言:as3
private var testAnim1:Animation;
private var testAnim2:Animation;
public function LayaSample() {
//初始化引擎
Laya.init(1136, 640,WebGL);
trace("ok...");
Laya.stage.on(Event.KEY_DOWN, this, this.onKeydown);
}
private function onKeydown(event:Event):void
{
var self:* = this;
if(event.keyCode === Keyboard.SPACE)
{
//移除动画
if(testAnim1)
{
testAnim1.clear();
testAnim1.removeSelf();
testAnim1 = null;
testAnim2.clear();
testAnim2.removeSelf();
testAnim2 = null;
Loader.clearRes("res/fish_1/stand.atlas", true);
Loader.clearRes("res/fish_1/attack.atlas", true);
trace("移除动画完成");
}
}
else if(event.keyCode === Keyboard.A)
{
//加载动画
Laya.loader.load(["res/fish_1/stand.atlas","res/fish_1/attack.atlas"], Handler.create(this, this.onAnimAtlasLoaded));
}
}
private function onAnimAtlasLoaded():void
{
testAnim1 = new Animation();
testAnim1.loadAnimation("res/fish_1/fish_1.ani");
Laya.stage.addChild(testAnim1);
testAnim1.play(0,true,"stand_" + 0);
testAnim1.pos(500, 300);
//------------------------------------------------------------------------------
testAnim2 = new Animation();
testAnim2.loadAnimation("res/fish_1/fish_1.ani");
Laya.stage.addChild(testAnim2);
testAnim2.play(0,true,"attack_" + 0);
testAnim2.pos(400, 400);
trace("创建动画完成");
}
没有找到相关结果
已邀请:
要回复问题请先登录
5 个回复
w1114367261
赞同来自:
suteam
赞同来自:
w1114367261
赞同来自:
* 清理指定资源地址的缓存。
* @param url 资源地址。
* @param forceDispose 是否强制销毁,有些资源是采用引用计数方式销毁,如果forceDispose=true,则忽略引用计数,直接销毁,比如Texture,默认为false
*/
public static function clearRes(url:String, forceDispose:Boolean = false):void {
Loader.clearRes清理你把里面的第二个参数设置成false试试
如果还是不行的话你就把资源清理方法改用一下这个方法!还有如果你的图片小于512的话是销毁不了的
https://ldc.layabox.com/doc/?nav=zh-as-3-2-7
suteam
赞同来自:
suteam
赞同来自: