2dx解析cocosbuilder中使用layer时的缺陷
2015-09-24 14:04
405 查看
2dx解析cocosbuilder中使用layer时的缺陷
cocos2d-x 3.7cocosbuilder中的layer通常会用到触摸属性:
但是在2dx解析布局文件的时候,却很多属性都没解析:
#define PROPERTY_TOUCH_ENABLED "isTouchEnabled" #define PROPERTY_ACCELEROMETER_ENABLED "isAccelerometerEnabled" #define PROPERTY_MOUSE_ENABLED "isMouseEnabled" #define PROPERTY_KEYBOARD_ENABLED "isKeyboardEnabled" void LayerLoader::onHandlePropTypeCheck(Node * pNode, Node * pParent, const char * pPropertyName, bool pCheck, CCBReader * ccbReader) { if(strcmp(pPropertyName, PROPERTY_TOUCH_ENABLED) == 0) { ((Layer *)pNode)->setTouchEnabled(pCheck); } else if(strcmp(pPropertyName, PROPERTY_ACCELEROMETER_ENABLED) == 0) { ((Layer *)pNode)->setAccelerometerEnabled(pCheck); } else if(strcmp(pPropertyName, PROPERTY_MOUSE_ENABLED) == 0) { // TODO: Not supported CCLOG("The property '%s' is not supported!", PROPERTY_MOUSE_ENABLED); } else if(strcmp(pPropertyName, PROPERTY_KEYBOARD_ENABLED) == 0) { // TODO: Not supported CCLOG("The property '%s' is not supported!", PROPERTY_KEYBOARD_ENABLED); // This comes closest: ((Layer *)pNode)->setKeypadEnabled(pCheck); } else { NodeLoader::onHandlePropTypeCheck(pNode, pParent, pPropertyName, pCheck, ccbReader); } }
最常用的ONE_BY_ONE和SwallowsTouches都没有解析,这样使用cocosbuilder编辑的那些属性还有什么用呢
下面是修改后的解析函数:
#define PROPERTY_DONT_TOUCH_SWALLOW "dontTouchSwallow" #define PROPERTY_TOUCH_ONE_BY_ONE "touchOneByOne" #define PROPERTY_TOUCH_ENABLED "touchEnabled" #define PROPERTY_ACCELEROMETER_ENABLED "accelerometerEnabled" #define PROPERTY_MOUSE_ENABLED "mouseEnabled" #define PROPERTY_KEYBOARD_ENABLED "keyboardEnabled" void LayerLoader::onHandlePropTypeCheck(Node * pNode, Node * pParent, const char * pPropertyName, bool pCheck, CCBReader * ccbReader) { if(strcmp(pPropertyName, PROPERTY_TOUCH_ENABLED) == 0) { ((Layer *)pNode)->setTouchEnabled(pCheck); } else if(strcmp(pPropertyName, PROPERTY_DONT_TOUCH_SWALLOW) == 0) { ((Layer *)pNode)->setSwallowsTouches(!pCheck); } else if(strcmp(pPropertyName, PROPERTY_TOUCH_ONE_BY_ONE) == 0) { ((Layer *)pNode)->setTouchMode(Touch::DispatchMode::ONE_BY_ONE); } else if(strcmp(pPropertyName, PROPERTY_ACCELEROMETER_ENABLED) == 0) { ((Layer *)pNode)->setAccelerometerEnabled(pCheck); } else if(strcmp(pPropertyName, PROPERTY_MOUSE_ENABLED) == 0) { // TODO: Not supported CCLOG("The property '%s' is not supported!", PROPERTY_MOUSE_ENABLED); } else if(strcmp(pPropertyName, PROPERTY_KEYBOARD_ENABLED) == 0) { ((Layer *)pNode)->setKeyboardEnabled(pCheck); } else { NodeLoader::onHandlePropTypeCheck(pNode, pParent, pPropertyName, pCheck, ccbReader); } }
相关文章推荐
- CocoStudio基础教程(2)关联程序逻辑与cocoStudio导出文件
- CocoStudio基础教程(1)创建UI并载入到程序中
- Quick-cocos2d-x3.3 Study (二十一)--------- 随机数
- cocos2d-x 3.x 血条
- cocos2d-x设计模式发掘之一:单例模式
- Cocos2d-js创建构造注册事件监听回调函数
- cocos2dx-2.x CCFileUtils文件管理分析(2)
- cocos2d-x 移植android竖,横屏设置
- Cocos2d场景切换效果汇总
- cocos2dx-3.8.1在Windows--vs2013上的项目创建
- cocos2d-x3.6获取csb文件里的按钮控件
- cocosstudio 出现项目由更新版本编辑器产生 无法打开的解决方法
- Cocos2d粒子系统二
- cocos基础教程(12)点击交互的三种处理
- cocos2d(粒子效果编辑器)
- eclipse建立cocos2d-x开发环境
- cocos2dx UI元素内存管理----autorelease
- Cocos2d-x 3.x使用第三方库播放gif图
- cocos2d-x 相关文章资源(安卓开发)
- cocos2d-x学习笔记(五)接入百度联盟广告(Android横幅和插屏广告)