[LayaAir3]3.3.2与设置组件灰显相关的 Bug 和 Crash

运行环境:MacOS M3 芯片电脑,3.3.2 IDE FOR MAC(ARM)
问题列表:
1.组件默认勾选“变灰”,再对其父节点做 alpha 从 0 到 1 的动画,此时组件的透明度在动画播放完成后仍会处于错误的状态。(该 bug 在编辑器和发布的工程内都存在);
2.发布安卓工程,在 AndroidStudio 中使用模拟器调试运行,点击按钮来回切换组件的 enabled (实际就是修改变灰状态)时会Crash。
3.给精灵组件增加圆角矩形的背景图形,当同时有对其做了从 0-1 的 scale 动画时,圆角矩形呈现成直线或极少的切点。 
已邀请:

layabox

赞同来自:

问题1和2已在3.3.3解决。预计本月30号发版
问题3,是基于优化方案导致的,您的这种需求,是比较少见的特例。所以这个我们不会在每一帧去调用重绘,否则会导致所有动画的性能消耗,需要开发者自行在脚本里调用重绘API。
示例代码如下:
const { regClass } = Laya;

interface AnimatorPlayScriptInfo {
animator: Laya.Animator2D;
layerindex: number;
playState: Laya.AnimatorState2D;
}

/**
* 继承自AnimatorStateScript(动画状态脚本)
*/
@regClass()
export class AnimationScript2D extends Laya.AnimatorState2DScript {
/**动画的状态信息 */
playStateInfo: AnimatorPlayScriptInfo = { animator: null, layerindex: -1, playState: null };

setPlayScriptInfo(animator: Laya.Animator2D, layerindex: number, playstate: Laya.AnimatorState2D) {
this.playStateInfo.animator = animator;
this.playStateInfo.layerindex = layerindex;
this.playStateInfo.playState = playstate;
}
/**
* 动画状态运行中
* @param normalizeTime 0-1动画播放状态
*/
onStateUpdate(normalizeTime: number): void {
const sp = this.playStateInfo.animator.owner as Laya.Sprite;
sp.graphics.repaint();
}

}

修改后的完整源码见附件。

lv

赞同来自: layabox

崩溃问题会在3.3.3版本修复

LayaAir大为

赞同来自:

您好,我们已经复现了这些问题,感谢您的反馈

得意须尽欢

赞同来自:

我也遇到了类似的问题,在安卓原生上将list内物体的gray的true设置成false就会崩溃,不知道和楼主的问题2是不是一类的。

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作