[muzzik分享]:3.3.1~3.3.2 部分龙骨播放异常解决方案

在 3.1 到 3.2 阶段,我遇到了下面龙骨动画问题,让美术和程序都很头疼,比如

非动态加载

  1. 进入场景后动画闪烁一下就没了,但重新激活节点就能播放
  2. 动画直接不出现,节点是激活状态

动态加载

  1. 节点初始不是激活状态动画不出现(和非动态加载 1 同时出现)

非动态加载可以直接用下面代码解决

private _play_anim(
		node_: cc.Node,
		anim_s_: string,
		play_times_n_: number,
		finish_cb_f_?: Function
	): void {
		node_.opacity = 0;
		node_.active = true;
		let anim_comp = node_.getComponent(cc.dragonBones.ArmatureDisplay);
		anim_comp.playAnimation(anim_s_, play_times_n_);
		this.scheduleOnce(() => {
			node_.opacity = 255;
			// play_times_n_ 为 0 不能触发结束回调
			if (play_times_n_ !== 0) {
				anim_comp.once(
					cc.dragonBones.EventObject.COMPLETE,
					() => {
						node_.active = false;
						finish_cb_f_?.();
					},
					this
				);
			}
		}, 0.5);
	}

动态加载的,除了要用以上代码,还需要在预制体内把动画节点设置为激活状态,且添加 UIOpacity 组件设置透明度为 0

希望能帮助大家,这只是临时解决方案,最后还是要看官方,3.3.x的龙骨问题属实有点多

这个可以具体描述一下,怎么操作?

非动态加载的就是直接挂场景
动态加载就是预制体里面的
并且只在部分动画出现,demo已复现
demo.zip (2.1 MB)

顺便看看这个

这个问题可以复现,已经内部先确认问题了。

什么版本修复呢?

让我们工程师先看一下,我们先确认一下问题。

这个问题,在3.4.0版本修复了,龙骨的一个bug。

你可以使用3.4.0 社区版本 【更新 110501】Cocos Creator v3.4.0 社区测试版发布 看看。

如果需要3.3.x版本,可以合并以下PR
https://github.com/cocos-creator/engine/pull/9351/files

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。