cocos2dx-JS v3.0Final版的坑-之一addEventListener

cocos2dx-JS v3.0 Final出来以后,正好遇到几个BUG已修复,就懒得动手再去改动JSB了,升级到最新的JS引擎版本和最新的COCO IDE V1.0.0.RC2。

开发工具和JS引擎版本:cocos ide rc2 + COCOS2Dx-JS V3.0 Final
按照新的提供的API一切顺利,win32版本调试完成,切换Android真机debug调试完成(小坑:使用coco ide生成的工程自带的Android Runtime是无法运行成功的,必须重新生成Android的runtimes!!注意,必须重新生成,不能从JS引擎下的runtimes拷贝,否则你就进入到我的坑里了!!!-从JS引擎下拷贝这个是一个版主说的,我尝试了,然后精神上就被强奸了2天。。后面告诉你为什么),
最后生成APK的包。

结果看似一切顺利,安装到Android上运行。。。然后就。。。没有周末了。。

打开Android安装的apk后是黑屏。。。

开始进行问题排查,使用debug的时候发现有一个日志提示是无法找到微软雅黑字体,我想有可能是这个问题,好吧。。
重构所有的字体为Android默认自带字体。。排查结果无效。。几个小时过去了。。(好吧,还在其中通过其他方式尝试过)。

后来采用终极模式,一行代码调试(修改一行代码,生成一次apk包,安装后看看是不是黑屏。。是很傻的方法,可是有更好的么??)

原因终于被找到。。
使用之前注意了一下本次的升级到v3.0的内容,其中有两项当时只是看了一眼,但没有特别注意(因为只是BUG修复嘛,也就是这个坑整整浪费了我2天时间)。
Fixed an issue of ccui widgets’ addEventListener that it doesn’t accept function’s target as parameter.

Refactored ccui’s addEventListenerXXX to addEventListener to fit Web engine API.
重构了CCUI的addEventListenerXXX to addEventListener。。。
因为最新版本的JS引擎的win32是不支持最新的addEventListener的(没试过我会乱讲?)!!,我又使用了上面COCO2dx社区的版主给的建议,从3.0引擎目录下拷贝的Android runtimes,
so…陷入无尽黑屏当中。。

总结一下解决方法把:

1、,建好工程以后,要重新builder Runtime(win32+Android),win32的我的没有builder成功,其他同学可以试试,通过逻辑判断如果win32成功,那么应该就不会有什么太大问题了。
2、不要使用ccui’s addEventListenerXXX的方法,即便是在win32下无法运行也不要轻易的使用这些已经被说为bug fix的,如果已经使用最新的引擎,那么一切按照最新的api。

顺便反馈一下 cocos Ide rc2 BUG:
用JS V3.0Final版本的引擎生成工程第一自带的runtimes Android无法运行,Win32的Runtime不能兼容最新的Api!!

其实貌似现在想想问题还是很好解决的,,引以为戒。。。
希望不要再出现坑之XX了。。。

感谢分享,应该是由于我们的疏忽IDE的runtime并不是最新的,所以addEventListenerXXX没有被替换为addEventListener,实在抱歉。使用final版引擎重新编译runtime就可以了

版主,突然还想起来一个问题。。为什么v3.0不支持了addEventListenerXXX在手机里就变成黑屏了呢??我觉得这个只是不建议使用而不是不能使用,而且在api理也是存在的。。 是不。。

写的很好啊。必须顶个 :7:

:14:mark一下 挺不错的啊

果断的顶起,我就是看到3.0final版本编译不过,果断的放弃了继续3.02的!

cc.loader.load 加载图的时候也出错。不过后来修复了一下
但是getRes的时候还是获取不到图片,缓存里没有保存。