在 3.1 到 3.2 阶段,我遇到了下面龙骨动画问题,让美术和程序都很头疼,比如
非动态加载
- 进入场景后动画闪烁一下就没了,但重新激活节点就能播放
- 动画直接不出现,节点是激活状态
动态加载
- 节点初始不是激活状态动画不出现(和非动态加载 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的龙骨问题属实有点多