cocos2d-x cocoStudioUI编辑器导出文件的使用

Posted brucemengbm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cocos2d-x cocoStudioUI编辑器导出文件的使用相关的知识,希望对你有一定的参考价值。


代码演示样例:

	UILayer* layer = UILayer::create();
	layer ->addWidget(CCUIHELPER->createWidgetFromJsonFile("你的UI编辑器导出文件名称.json"));
	this->addChild(layer );



OK。上一步仅仅是将你制作的UI用代码显示出来, 可是当我们须要接收 来自 button,检測框等控件的点击及其它事件消息时,我们该怎么做呢?

第一步:

首先须要定义控件类型指针,将已经载入好的控件的指针“接”过来。这里要注意的是,载入UIproject文件那步已经将所包括的控件解析,分配了内存,所以仅仅需取得它的指针。

UITextButton* close = dynamic_cast<UITextButton*>(layer ->getWidgetByName("close"));


第二步:

加入事件回调函数

m_pBtnClose->addReleaseEvent(this, coco_releaseselector(接收button放开事件的回调函数));


好了。其它类型控件大体如此。



注意事项

使用cocoStudio 须要注意的内存问题

切换场景时须要释放因为载入UI文件所产生的内存。否则上一场景的部分内存会遗留。导致内存高峰

应在场景类的析构函数里加上例如以下几句代码:

	// 清理动画数据
	CCArmatureDataManager::purge();
	// 清理场景渲染数据
	CCSSceneReader::sharedSceneReader()->purgeSceneReader();
	// 清理动作数据
	cocos2d::extension::ActionManager::shareManager()->purgeActionManager();
	// 清理UI数据
	cocos2d::extension::UIHelper::instance()->purgeUIHelper();



以上代码使用地方错误会导致当前场景的部分内存释放,出现执行时崩溃。







以上是关于cocos2d-x cocoStudioUI编辑器导出文件的使用的主要内容,如果未能解决你的问题,请参考以下文章

cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第三步---编辑器---更方便很多其它操作更像编辑器

Cocos2d-x初入学堂(13)--;Tiled Map Editor地图编辑器

使用BabeLua在cocos2d-x中编辑和调试Lua

cocos2d-x-3.11.1 初使用

Cocos2d-x初入学堂(10)--;ParticleEditor粒子编辑器

关于Cocos2d-x的瓦片地图