在cocos2dx中加载CocoStudio

  1. 添加引用
    #include "cocos-ext.h"
    
    using namespace cocos2d::gui;
    using namespace cocos2d::extension;  
    
    USING_NS_CC;


  2. 加载UI
    Widget *widget = GUIReader::getInstance()->widgetFromJsonFile("DemoShop/DemoShop.ExportJson");
    	
    
    this->addChild(widget ,0);
    m_pUILayer = UILayer::create();
    m_pUILayer->scheduleUpdate();
    addChild(m_pUILayer);
    Layout* shop_root = static_cast<Layout*>(GUIReader::shareReader()->widgetFromJsonFile("TestButton/TestButton_1.ExportJson"));
    m_pUILayer->addWidget(shop_root);


    获取UI组件并添加点击事件
    UIButton* loginBtn = dynamic_cast<UIButton*>(widget->getChildByTag(3)); 
    loginBtn->addTouchEventListener(this,toucheventselector(HelloWorld::touchButton));


  3. 加载动画
    CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo("Player/DemoPlayer0.png","Player/DemoPlayer0.plist","Player/DemoPlayer.ExportJson");
    CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo("Player/DemoPlayer1.png","Player/DemoPlayer1.plist","Player/DemoPlayer.ExportJson");
    
    armature = CCArmature::create("DemoPlayer");
    
    //播放指定动作
    armature->getAnimation()->playByIndex(0);
    
    //修改属性
    armature->setScale(0.1f);
    
    //设置动画精灵位置
    armature->setPosition(ccp(100,100));
    
    //添加到当前页面
    this->addChild(armature,2);


  4. 加载scene
    // 加载scene
    CCNode *pNode = SceneReader::sharedSceneReader()->createNodeWithSceneFile("jack.json"); 
    this->addChild(pNode);


    获取UI组件并添加点击事件
    CCComRender *pUIRender = static_cast<CCComRender*>(pNode->getChildByTag(10007)->getComponent("GUIComponent"));  //UI tag and name
    UILayer *pUILayer = static_cast<UILayer*>(pUIRender->getNode());  
    UIButton *pHPLoadingBar = static_cast<UIButton*>(pUILayer->getWidgetByName("Play"));  // button name
    pHPLoadingBar->addTouchEventListener(this,toucheventselector(HelloWorld::touchButton));
    void HelloWorld::touchButton(CCObject* object,TouchEventType type)
    {
    	
      switch (type)
      {
      case TouchEventType::TOUCH_EVENT_BEGAN:
        CCLog("TOUCH_EVENT_BEGAN");
        break;
      case TouchEventType::TOUCH_EVENT_MOVED:
        CCLog("TOUCH_EVENT_MOVED");
        break;
      case TouchEventType::TOUCH_EVENT_ENDED:
       CCLog("TOUCH_EVENT_ENDED");
        break;
      case TouchEventType::TOUCH_EVENT_CANCELED:
        CCLog("TOUCH_EVENT_CANCELED");
        break;
      default:
        break;
      }
    }


版权声明:本文为justdifferent原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。