今天我们要知道的就是cocos2dx中的另一种加载方式--cocos2d-x3.3 csloader加载
  1. #include "ui/CocosGUI.h"//UI相关的头文件
  2. #include"cocostudio/CocoStudio.h"//在CocosStudio.h 头文件中已经包含了Studio所需要的各个头文件(除CocosGUI)因此我们使用Studio仅需要包含他就可以
  3. using namespace cocos2d;//CSLoader位于cocos2d命名空间。
  4. using namespace cocostudio::timeline;//动画相关的类位于cocostuio::timeline当中
  5. void myScene::initFunc()
  6. {
  7. //以下是加载相关的代码:
  8. None *rootNode = CSLoader::createNode("MainScene.csb");//传入Studio2.x的资源路径
  9. this->addChild(rootNode);//假设this是即将显示的scene
  10. //加载动画:
  11. ActionTimeline *action = CSLoader::createTimeline("MainScene.csb");
  12. rootNode->runAction(action);//注!!!:同一个文件创建的节点只能使用同一个文件创建的动画。
  13. //播放动画:
  14. action->gotoFrameAndPlay(0,60,true);//从第0帧到60帧循环播放。还有其他重载函数,具体看源码.
  15. //帧事件监听
  16. action->setFrameEventCallFunc(CC_CALLBACK_1(myScene::onFrameEvent, this));
  17. //关于CC_CALLBACK_1需要点C++11的基础才能知道是咋回事,这里只要照着写就行。想了解可以查下std::Bind
  18. }
  19. void myScene::onFrameEvent(Frame* frame)//固定的格式
  20. {
  21. EventFrame* evnt = dynamic_cast<EventFrame*>(frame);
  22. if(!evnt)
  23. return;
  24. std::string str = evnt->getEvent();
  25. if (str == "xxoo")
  26. {
  27. CCLOG("come on baby");
  28. }
  29. }