关于cocos2dx3.2返回键问题以及ansi转utf8的问题
来源:互联网 发布:网络喊麦最火的歌曲 编辑:程序博客网 时间:2024/06/06 15:53
- 转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog)
- 最近在学习的过程中重新整理了一下代码,顺便把cocos2dx从3.0升到了3.2。这里记录一下升级过程中的问题。
- 之所以只升到3.2是因为后面的版本使用了lua5.2,而我还是更喜欢用5.1,而且能继续使用luajit,另外一个原因是因为cocosstudio,3.2后面的版本就导出成csd格式了,我不是很喜欢这种改变,我还是喜欢直接导出json文件,在lua中加载(其实是不想改代码啦。)。个人认为,cocosstudio正在放弃自己的优势,转而向unity3d靠拢,希望搞一个大而全的工具来开发游戏,这是强制改变用户做游戏的方式。很多C/C++程序员之所以不喜欢unity3d就是因为觉得这不是在编程,而cocos2dx则完全是程序员喜欢的方式。好了,个人见解不吐槽了,下面就说这次遇到的两个问题吧。
- 第一个是关于返回键的问题,最新编出来的的程序,在windows按退格键正常,但是在android发现按返回键没有反应了。查了一些资料原来是响应的键值改变了,3.0之前是具体看代码,比较坑爹。
--注册返回键function Layer:listenBackspace() if self._layer then local function onKeyReleased(keyCode, event) --3.0版本之前是KEY_BACKSPACE,3.1之后是KEY_BACK if keyCode == cc.KeyCode.KEY_BACK then self:onKeyCallback(keyCode) end end local listener = cc.EventListenerKeyboard:create() listener:registerScriptHandler(onKeyReleased, cc.Handler.EVENT_KEYBOARD_RELEASED) local eventDispatcher = self._layer:getEventDispatcher() eventDispatcher:addEventListenerWithSceneGraphPriority(listener, self._layer) endend
- 第二个问题是中文转码的问题,我之前有一篇博文介绍过。见关于cocos2dx中文转UTF8码的解决方案。最近在我的安卓4.4的手机上,发现转码失败了,中文全部显示一些框框。查了一些资料,原来是因为libicuuc.so库文件里面的函数ucnv_convert_xx的版本变了,具体的版本映射如下:
//android2.1, ucnv_convert_3_8 //android2.2, ucnv_convert_4_2 //android2.3, ucnv_convert_44 //android4.0, ucnv_convert_46 //android4.0, ucnv_convert_46 //android4.1, ucnv_convert_47 //android4.2, ucnv_convert_48 //android4.3, ucnv_convert_50 //android4.4, ucnv_convert_51
- 知道问题后就好解决了,以后出现这个问题也有经验了,在原文的基础上稍微改一下即可。贴上我写的新接口,这样也方便以后扩展。
bool openIcuuc(){ void* libFile = dlopen("/system/lib/libicuuc.so", RTLD_LAZY); if (libFile) { char* dll_fx_list[] = { "ucnv_convert_3_8", "ucnv_convert_4_2", "ucnv_convert_44", "ucnv_convert_46", "ucnv_convert_47", "ucnv_convert_48", "ucnv_convert_50", "ucnv_convert_51", "ucnv_convert_52", "ucnv_convert_53" }; for (int i = 0; i < 10; ++i) { ucnv_convert = (void (*)(const char *, const char *, char * , int32_t , const char *, int32_t,int32_t*))dlsym(libFile, dll_fx_list[i]); if (ucnv_convert) return true; } dlclose(libFile); } return false;}
2 0
- 关于cocos2dx3.2返回键问题以及ansi转utf8的问题
- 关于字符串编码的(ANSI、GB2312、UTF8)问题,在应用开发中若干问题
- wp8下cocos2dx3.2的物理返回键(back)事件响应的问题
- 关于UNICODE/ANSI的问题
- cocos2dx3.2 关于计算两点向量normalize问题的解决办法
- VC中Ansi、Unicode、UTF8字符串的问题
- UNICODE和ANSI以及MBCS的问题
- 解决cocos2dx3.x版本的Android返回键的使用问题
- 关于mysql数据库的utf8编码问题
- php头部空行|utf8头部空行|关于bom以及utf-8的问题
- php头部空行|utf8头部空行|关于bom以及utf-8的问题
- [C/C++]_[VS2010源码中使用UTF8中文字符串被转码为ANSI的问题]
- Java与编码问题串讲之一--ANSI、Unicode与UTF8
- Java与编码问题串讲之一--ANSI、Unicode与UTF8
- Java与编码问题串讲之一--ANSI、Unicode与UTF8
- Java与编码问题一--ANSI、Unicode与UTF8
- VS2005中UNICODE和ANSI以及MBCS的问题
- VS2005中UNICODE和ANSI以及MBCS的问题
- android仿多看阅读三屏滚动效果 -- 更改OnPageChangeListener
- Unity4.6.3编译android版本报错,Creating directory failed
- 栋栋晓02:jQuery基础知识(转)
- 作业P51-11
- 编译原理课程设计-PL/0编译器的扩充(C语言完整版)
- 关于cocos2dx3.2返回键问题以及ansi转utf8的问题
- Lucene的IndexModifier方法
- linux 散知识点
- Java误区之长整除
- nyoj19 擅长排列的小明
- ViewPager实现导航页
- 为Git设置代理(zt)
- [LeetCode 160]Intersection of Two Linked Lists
- log4j.propertiesj配置