creator的序列帧可以直接通过代码的方式添加到场景中吗

    var anim_m = new cc.Node("anim");
    this.node.addChild(anim_m);

    var anim_n = anim_m.addComponent(cc.Animation);

    var clip = cc.AnimationClip.createWithSpriteFrames(texes.getSpriteFrames(), 17);
    clip.name = "test_ani";
    
    anim_n.addClip(clip,'test_ani');
    anim_n.play("test_ani");

写了这么一段代码 但是序列帧动画不能播放 哪位能解惑一下吗

有无报错信息?

没有任何报错信息,如果我取出单一的frame以sprite方式加入场景能显示

现在的疑惑是不是creator不提倡这么用代码驱动的方式添加序列帧动画

texes.getSpriteFrames()返回的是spriteFrame的数组吗?

返回的数据是对的 断点数据看过了。

你添加了 sprite 组件没

我是代码添加了个空的节点 没用到sprite组件啊
都是代码添加的

搞定了 原来cc.animation必须要挂载在sprite组件上面
新代码
var anim_m = new cc.Node(“anim”);
this.node.addChild(anim_m);

var sp = anim_m.addComponent(cc.Sprite);
var anim_n = sp.addComponent(cc.Animation);

var clip = cc.AnimationClip.createWithSpriteFrames(texes.getSpriteFrames(), 17);

clip.name = "test_ani";

anim_n.addClip(clip,'test_ani');
anim_n.play("test_ani");
1赞

不是 cc.animation 必须挂载在 sprite 上面
应该说序列帧需要通过 sprite 组件来显示,animation 只是驱动 sprite 组件显示哪一个 spriteframe

1赞

我居然没有注意到:joy:

唉,我也掉到这个坑里,浪费挺多时间的,官方文档也没提需要有sprite组件……

是,3.x建议直接使用动画编辑器