加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 16:53:21 所属栏目:百科 来源:网络整理
导读:理解: 将cocoStudio的ui控件转换成cocos的GUI控件来操作 通过widgetFromJsonFile()加载根容器Plane控件 通过 Helper::seekWidgetByTag()寻找子控件 打开官方示例: 打开 CMD CD 到D:cocos2d-x-3.3rc0tests cpp-tests 执行 cocos run -p win32 命令

理解:

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

打开官方示例:

  • 打开CMD
  • CD到D:cocos2d-x-3.3rc0testscpp-tests
  • 执行cocos run -p win32命令



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

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



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

  • 将Json文件中的控件,转换成cocos2dx里面的ui控件来操作
  • #include "cocostudioCocoStudio.h"
  • #include "uiUIButton.h"
  • using namespace cocostudio;
  • using namespace ui;
注意类型转换的类型必须一一对应,比如TextField就是TextField,不能转换为TextFieldTTF:

[cpp] view plain copy
  1. #include"HelloWorldScene.h"
  2. /*cocoStudio导出的Json文件*/
  3. #defineJSON"DemoLogin.json"
  4. #defineBTN_TAG14
  5. #defineEDIT_TEXT_NAME8
  6. /*设置命名空间*/
  7. USING_NS_CC;
  8. usingnamespacecocostudio;
  9. namespaceui;
  10. namespacestd;
  11. Scene*HelloWorld::createScene()
  12. {
  13. autoscene=Scene::create();
  14. autolayer=HelloWorld::create();
  15. scene->addChild(layer);
  16. returnscene;
  17. }
  18. boolHelloWorld::init()
  19. if(!Layer::init())
  20. returnfalse;
  21. }
  22. /*加载cocoStudio界面*/
  23. autouiScene=GUIReader::getInstance()->widgetFromJsonFile(JSON);
  24. addChild(uiScene);
  25. /*找到cocoStudio的控件,装换成coocs的gui控件(Helper须加载CocosGUI.h)*/
  26. /*按钮*/
  27. Button*btn=(Button*)(Helper::seekWidgetByTag(uiScene,BTN_TAG));
  28. /*设置按钮点击事件(注意转换类型的对应)*/
  29. btn->addTouchEventListener(this,toucheventselector(HelloWorld::touchEvent));
  30. /*输入框(注意转换类型的对应,不是TextFieldTTF)*/
  31. editText=(TextField*)(Helper::seekWidgetByTag(uiScene,EDIT_TEXT_NAME));
  32. true;
  33. /*设置按钮点击事件*/
  34. voidHelloWorld::touchEvent(Ref*pSender,TouchEventTypetype){
  35. switch(type)
  36. {
  37. caseTOUCH_EVENT_BEGAN:
  38. CCLOG("Began");
  39. break;
  40. caseTOUCH_EVENT_MOVED:
  41. break;
  42. caseTOUCH_EVENT_ENDED:
  43. /*输出输入框的内容*/
  44. CCLOG(editText->getString().c_str());
  45. caseTOUCH_EVENT_CANCELED:
  46. default:
  47. }




FROM:http://blog.csdn.net/ns2250225/article/details/41961219



给cocos中添加响应事件的例子:

#include "ui/CocosGUI.h"

//获取屏幕大小
Size visibleSize = Director::getInstance()->getVisibleSize();

auto widget = Widget::create();
widget->setContentSize(Size(100,100));
widget->setPosition(Vec2(visibleSize.width/2,visibleSize.height/2));
widget->setTouchEnabled( true );
this ->addChild(widget);
widget->addTouchEventListener([](Ref *pSender,Widget::TouchEventType type){
switch (type)
{
case Widget::TouchEventType::BEGAN:
CCLOG( "BEGAN" );
break ;
Widget::TouchEventType::MOVED:
"MOVED" );
;
Widget::TouchEventType::ENDED:
"ENDED" );
;
Widget::TouchEventType::CANCELED:
"CANCELED" );
;
default :
;
}
});

from:http://www.cocoachina.com/bbs/read.php?tid-289092.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读