1.5.4_beta,动画播放完毕的监视器很大概率会不起作用了

今天从1.5.2更新到1.5.4_beta后,原来好好的动画播放完毕的监视器很大概率会不起作用了,回调函数经常没有执行

animaNet.once(laya.events.Event.COMPLETE, animaNet, OnNetAnimaDone); // animaNet是个laya.display.Animation
已邀请:

yuanxiaoshu

赞同来自:

就是一个只有一帧(有多帧也是通用的问题,但概率小一些)的动画,播放完后播放另一个循环动画(或删除自己)。
刚测试过几个版本,1.5.2是没问题的,1.5.3和1.5.4_beta都有问题。  部分代码如下:
 
    // 播放开火动画(只有一帧,不循环),播放完后播放正常动画(循环)
    g_WeaponFactory.mWeaponCur.PlayAnima(WEAPON_ANIMA_FIRE);

    // 播放动画
    _proto.PlayAnima = function(anaimaname)
    {
        // 第一次创建一个动画
        if (null == this.mAnimaCur)
        {
            this.mAnimaCur = new laya.display.Animation();
            this.mAnimaCur.interval = 100;
            this.addChild(this.mAnimaCur);
        }

        var loop = true;
        if (anaimaname == WEAPON_ANIMA_FIRE)
        {
            this.mAnimaCur.interval = 60;
            loop = false;
        }

        var fullname = this.mWeaponCfg.mName + "_" + anaimaname;

        this.mAnimaCur.rotation = this.mAngle;
        this.mAnimaCur.play(0, loop, fullname);

        if (anaimaname == WEAPON_ANIMA_FIRE)
        {
            this.mAnimaCur.once(laya.events.Event.COMPLETE, this, this.onFireAnimaDone);
        }
    }
 
    // 开火动画回调函数
    _proto.onFireAnimaDone = function()
    {
        this.PlayAnima(WEAPON_ANIMA_NORMAL);
    }
 
 

cuixueying

赞同来自:

  现在确实有这个问题,只有一帧的图集动画无法触发COMPLETE事件,由于反馈该问题的开发者还是比较多的,我们打算继续支持该方案的操作.
  如果着急的话,你可以先改下引擎下的Animation类,将下面的一句话去掉即可

666.png

下个版本引擎就会修改,请关注版本更新!

要回复问题请先

商务合作
商务合作