在cocos studio 某个早期版本中,动画编辑器是一个独立的程序,在编辑器中,可以创建多个互相独立的帧动画,然后导出 csb、plist、png文件,程序中可以这样使用:
ccs.armatureDataManager.addArmatureFileInfo(“csbFile.csb”);
var armature = ccs.Armature.create(“csbFile”);
armature.getAnimation().play(“animationName”);
armature.getAnimation().setMovementEventCallFunc(this.onMovementCallback, this);
this.addChild(armature);
这样程序可以很方便的使用编辑好的动画,随时更换动画名称、添加动画事件回调函数等等,就像使用一个 sprite 一样,不用操心太多事情;
在最新版的 cocos studio 2 中,我创建一个空的资源项目,然后添加添加资源,用几帧图创建多个帧动画后,发布资源,得到了 MainScene.json、plist、png 三个文件,然后在 js 中用如下方式使用:
var node = ccs.csLoader.createNode(“res/MainScene.json”);
var node_action = ccs.actionTimelineCache.createAction(“res/MainScene.json”);
node.runAction(node_action);
node_action.gotoFrameAndPlay(0, 40, true);
this.addChild(node);
这样也能播放动画,但是必须要手动的指定动画的起始帧 和 结束帧,同时指定是否循环,很不方便;而且得到的 node对象,像是一个 cclayer,我用上面的方式播放动画时,创建的好几个动画会同时播放,并没有找到使用动画名字直接播放的函数;因为一个动画可能在多个场景中使用,所以不能把回调函数写死,需要灵活的指定;
在网上查了不少的教程,使用的都是旧版的cocos studio,包括官方的教程;论坛中并没有找到完整的流程,说明怎么从零开始,创建一系列帧动画,然后在代码中去使用;
上面是我尝试的步骤,我的问题是:
如何在cocos studio 2 中,创建一个帧动画工程,而不是一个场景;工程中可以创建多个动画,播放时可以使用名称播放指定动画;
编辑好工程以后,如何在 js 代码中加载、播放、添加动画事件回调函数?(动画重用率较高,回调函数最好是可以在代码中指定)
可能有些流程我还没有查到,希望大家能够不吝赐教,把每一步都说明一下,免得后来者看的一头雾水,不明所以。
谢谢