[LayaAir 2.0]代码2.0.2版本Laya.Animator发现play方法的存在BUG

2.0.2版本Laya.Animator。
加载完模型和动画后。
调用play("动作")
发现还是播放的默认动作,查了查引擎代码。
发现在调用play("动作")后边,Laya.Animator又执行了一次_onEnable方法。
BUG就是这个_onEnable方法产生的,看截图。

x.png

 
对于Laya.Animator执行的顺序是:
1,用户调用 play("动作名")
2,引擎调度 onEnable。这里却执行了play(null) ?显然覆盖了1。如图所示
所以导致1失效。
 

x2.png


 
请官方修复此BUG。
已邀请:

腊笔小新

赞同来自:

正确的写法:
 
		override protected function _onEnable():void {
for (var i = 0, n = this._controllerLayers.length; i < n; i++) {
if (this._controllerLayers[i].playOnWake) {
var controllerLayer = this._controllerLayers[i];
var curPlayState = controllerLayer._currentPlayState;
if (curPlayState == null) {
var defaultClip = this.getDefaultState(i);
(defaultClip) && (this.play(null, i, 0));
}
}
}
}

Aar0n

赞同来自:

能否提供个例子,我们测试没发现这个问题

要回复问题请先

商务合作
商务合作