网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

cocosStudioformac中ListView加载问题怎么解决

本篇内容介绍了“cocos Studio for mac中ListView加载问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

创新互联成立于2013年,是专业互联网技术服务公司,拥有项目网站设计制作、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元射阳做网站,已为上家服务,为射阳各地企业和个人服务,联系电话:028-86922220

1.加载使用UI编辑器编辑好的UI,我使用的是cocos2d-x 3.2版本。for mac是使用的1.0.0版本的。

编辑好之后,导出,在Export文件夹下有你编辑的UI项目,在那里可以找到.json的文件

这几个json就是你要在cocos2d-x中加载的资源。

实际上,for mac版本的cocos studio编辑器的根视图是Node,见下图。这个和windows系统上是不一样的。

单单只是这点区别,就难到了很多同学。也是因为这一点不一样,所以使用的加载方法也不一样。  

windows下的编辑器使用下边的方法加载UI资源:(因为我的xcode文字背景色设置是黑色,所以下边的颜色可以看起来不清楚,大家讲究着看吧。)

auto myLayout = dynamic_cast(cocostudio::GUIReader::getInstance()->widgetFromJsonFile("CJDHMainUI_1/CJDHMainUI_1.json"));
 
auto gamestartBtn = dynamic_cast(Helper::seekWidgetByName((Widget*)rootNode,"gameStart_Button"));

而在mac系统下的cocos studio使用下边的加载方法加载资源:

Node* rootNode =cocostudio::timeline::NodeReader::getInstance()->createNode("CJDHMainUI/CJDHGameUI.json");
this->addChild(rootNode,0);
    
auto homeBtn = dynamic_cast(rootNode->getChildByName("Button_home"));
 
    homeBtn->addTouchEventListener(CC_CALLBACK_2(GameSelectLayer::touchEvent, this));

这里很明显可以看出来,一个是Layout对象,一个是Node对象。

     在使用ListView时也有一些不一样。因为ListView只能添加Layout对象,不能添加Node的非Widget对象。所以,使用mac下的编辑器的时候,一定要从Node这个对象下边取出Layout对象加进ListView才行。今天研究半天了,总算是把这个搞明白了。

比如,我在使用一个新的画布编辑了一个ListView的Cell子项,当你想使用Widget的clone()时发现会报错。一直没有搞懂,直到最后豁然开朗了。请看下边加载的方法。

ListView* lv = dynamic_cast(rootNode->getChildByName("ListView_main"));
    lv->setDirection(ui::ScrollView::Direction::VERTICAL);
 
    lv->setBounceEnabled(true);
//这个方法得到的是Node并不是Layout所以不能使用clone.
    Node* wid = cocostudio::timeline::NodeReader::getInstance()->createNode("CJDHMainUI/CCJDHTableCellUI.json");
    //从Node中取出Layout对象,这个时候才可以使用clone
    Layout* out = dynamic_cast(wid->getChildByName("Panel"));
 
addChild(out->clone());

“cocos Studio for mac中ListView加载问题怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


分享文章:cocosStudioformac中ListView加载问题怎么解决
标题网址:http://bjjierui.cn/article/gooepi.html

其他资讯