【cocosStudio】查看官方示例--调用cocoStudio控件

理解:

  • 将cocoStudio的ui控件转换成cocos的GUI控件来操作
  • 通过widgetFromJsonFile()加载根容器Plane控件
  • 通过Helper::seekWidgetByTag()寻找子控件

打开官方示例:

  • 打开CMD
  • CD到D:\cocos2d-x-3.3rc0\tests\cpp-tests\
  • 执行cocos run -p win32命令
【cocosStudio】查看官方示例--调用cocoStudio控件_第1张图片


将class下所有的文件全部放到Sublime Text 3中:

  • 查找文件CTRL+P:CocoStudio.h
  • 发现底下有个#include "cocostudio/CCSGUIReader.h"
  • 接着查找CCSGUIReader.h



导入头文件调用:(注意命名空间和强制类型转换类型)

  • 将Json文件中的控件,转换成cocos2dx里面的ui控件来操作
  • #include "cocostudio\CocoStudio.h"
  • #include "ui\UIButton.h"
  • using namespace cocostudio;
  • using namespace ui;
注意类型转换的类型必须一一对应,比如TextField就是TextField,不能转换为TextFieldTTF
【cocosStudio】查看官方示例--调用cocoStudio控件_第2张图片
#include "HelloWorldScene.h"

/* cocoStudio导出的Json文件 */
#define JSON "DemoLogin.json"
#define BTN_TAG 14
#define EDIT_TEXT_NAME 8

/* 设置命名空间 */
USING_NS_CC;
using namespace cocostudio;
using namespace ui;
using namespace std;

Scene* HelloWorld::createScene()
{
    auto scene = Scene::create();  
    auto layer = HelloWorld::create();
    scene->addChild(layer);
    return scene;
}

bool HelloWorld::init()
{
    if ( !Layer::init() )
    {
        return false;
    }

	/* 加载cocoStudio界面 */
	auto uiScene = GUIReader::getInstance()->widgetFromJsonFile(JSON);
	addChild(uiScene);


	/* 找到cocoStudio的控件,装换成coocs的gui控件(Helper须加载CocosGUI.h) */
	/* 按钮 */
	Button *btn = (Button*)(Helper::seekWidgetByTag(uiScene,BTN_TAG));
	/* 设置按钮点击事件(注意转换类型的对应) */
	btn->addTouchEventListener( this, toucheventselector(HelloWorld::touchEvent));

	/* 输入框(注意转换类型的对应,不是TextFieldTTF) */
	editText = (TextField*)(Helper::seekWidgetByTag(uiScene,EDIT_TEXT_NAME));

	return true;
}

/* 设置按钮点击事件  */
void HelloWorld::touchEvent(Ref *pSender, TouchEventType type){
	
    switch (type)  
    {  
        case TOUCH_EVENT_BEGAN:  
			CCLOG( "Began" );
            break;  
               
        case TOUCH_EVENT_MOVED:  
            break;  
               
        case TOUCH_EVENT_ENDED:
			/* 输出输入框的内容 */
			CCLOG( editText->getString().c_str() );
            break;  

        case TOUCH_EVENT_CANCELED:  
            break;  
               
        default:  
            break;  
    }  

}

【cocosStudio】查看官方示例--调用cocoStudio控件_第3张图片


你可能感兴趣的:(Coco2dx,cocos2dx学习)