首先,您需要引入GUI头文件
引擎版本:Cocos 2d-x 3.3RC0
编辑器版本:Cocos Studio 2.0Beta0
#include “cocosGUI.h”
#include”CocosStudio.h“
新版本的Cocos2d-x已经将工程给引入到Cocos2d-x下libcocos2d库中,所以无需更多操作。
接下来是数据解析的方法:
//节点
Node* node = CSLoader::createNode(“ActionTest/MainScene.csb”);
this->addChild(node);
//动画
ActionTimeline* action = CSLoader::createTimeline(“ActionTest/MainScene.csb”);
node->runAction(action);
action->gotoFrameAndPlay(0, true);
因为我们在2.0版本中添加了工程文件的相互引用的支持,所以可能会存在画中画,关于这个可以参考下面的方法获取并控制。
//取出动画中的动画
auto moveNode = node->getChildByName(“moveNode”);
if(moveNode)
{
//获取动画对象,这个动画相当于这个节点在时间轴里的所有动画内容。且这个节点需要是导入的csd文件类型节点。
ActionTimeline* atl = dynamic_cast<ActionTimeline*>(moveNode->getActionByTag(moveNode->getTag()));
//设置帧事件回调方法
atl->setFrameEventCallFunc(CC_CALLBACK_1(TestAction::onFrameEvent, this));
//停止动画
//moveNode->stopAction(atl);
//获取节点中的子节点
auto rotationNode = moveNode->getChildByName(“rotationNode”);
if(rotationNode)
{
//获取节点的动画
ActionTimeline* raction = dynamic_cast<ActionTimeline*>(rotationNode->getActionByTag(rotationNode->getTag()));
//raction->gotoFrameAndPlay(0,200,true);
raction->setFrameEventCallFunc(CC_CALLBACK_1(TestAction::onFrameEvent, this));
}
}
