cocos2d-x js移植安卓 —— 填坑3 runAction方法报错 Invalid Native Object

来源:互联网 发布:网络语种马是什么意思 编辑:程序博客网 时间:2024/06/10 08:41

  这次遇到的问题是,调用runAction方法报错 debug info: Invalid Native Object,同样的,浏览器正常,安卓就不能。

先介绍一下游戏里的相关代码


这里的意思是游戏结束了,创建一个action出来,这个action是用来调用superFailDownFinsh方法的,我们把这个action交给superMen, 然后调用superMen的fail方法。下面是superMen出问题的方法:


先说一下,superMen.fail()的主要功能就是把superMen的state改成SuperMen.State.fail,于是每一桢就执行上面这段代码了,当条件达到时就会执行this.runAction方法, 这个this.afterFailAction就是第一段代码中的action,那为什么会报这个错呢?


纠结了半天,最后在网上看了别人的提问,从回答中找到答案,地址是: http://discuss.cocos2d-x.org/t/cccallfunc-js-cocos2dx-animate-create-invalid-native-object/18972,看第一个回答,一些新建了又不是即时用到的对象,一定要retain一下,html里可以不加,因为h5的运行机制和c++的不同,毕竟c++是更底层的语言,不会像h5这样随意,我们将第一段代码改成这样就好了:


再运行一下,成功了!


题外话说句,最近是有抽时间去学英语才看得懂人家说什么,这是一门很重要的外语,学好了就能掌握一手学习资料,也能参考老外解决问题的方法!