代码如下,首个加载的动画能正常显示不报错(网页,android都可以)
第二个动画起,网页报No armature data,但能显示动画,android上则闪退
import {_decorator, Component, Node, dragonBones, Layers} from ‘cc’;
import {CocosJava} from “…/scripts/support/CocosJava”;
const {ccclass, property} = _decorator;
@ccclass(‘role’)
export class role extends Component {
@property({type: dragonBones.ArmatureDisplay})
dragon: dragonBones.ArmatureDisplay | null = null
roleIndex: number = 0;
roleNames: Array = new Array();
initData() {
for (let i = 1; i < 15; i++) {
this.roleNames.push("role" + (1000 + i));
}
this.roleNames.push("role1018a")
this.roleNames.push("role1018b")
this.roleNames.push("role1038")
this.roleNames.push("role1039")
for (let i = 1048; i <= 1060; i++) {
this.roleNames.push("role" + i);
}
this.roleNames.push("role1062")
this.roleNames.push("role1063")
this.roleNames.push("role1064")
this.roleNames.push("role1067")
this.roleNames.push("role1069")
for (let i = 1070; i <= 1074; i++) {
this.roleNames.push("role" + i);
}
this.changeRole(this.roleNames[this.roleIndex])
this.schedule(this.handler, 5)
}
dynamicCreate() {
//this.initData()
}
start() {
CocosJava.showTS("start")
this.node.addComponent(dragonBones.ArmatureDisplay)
this.dragon = this.node.getComponent(dragonBones.ArmatureDisplay)
this.initData()
}
handler(): void {
this.roleIndex++
if (this.roleIndex >= this.roleNames.length) {
this.roleIndex = 0;
}
this.changeRole(this.roleNames[this.roleIndex])
}
changeRole(name: string) {
cc.resources.load("textures/role/" + name + "/" + name + "_tex",
dragonBones.DragonBonesAtlasAsset, (err, resource) => {
if (err || !resource) {
CocosJava.showTS(name + " ske not found")
return
}
this.dragon!.dragonAtlasAsset = resource!
cc.resources.load("textures/role/" + name + "/" + name + "_ske",
dragonBones.DragonBonesAsset, (err, resource) => {
if (err || !resource) {
CocosJava.showTS(name + "tex not found")
return
}
this.dragon!.dragonAsset = resource!
this.dragon!.armatureName = name;
this.dragon!.playAnimation("idle1", 0);
})
});
}
}