加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2d-html5 打包后JSB不支持的方法汇总

发布时间:2020-12-14 19:40:04 所属栏目:百科 来源:网络整理
导读:http://blog.163.com/mqsy_yj/blog/static/2940499220131011101730101/ 用cocos2d-html5开发游戏确实很方便,但在web browser 下运行与打包成app发布到移动设备上运行却是两码事。 相信大家和我一样,遇到过打包后运行app报 cc.pToAngle is not a function。

http://blog.163.com/mqsy_yj/blog/static/2940499220131011101730101/

用cocos2d-html5开发游戏确实很方便,但在web browser 下运行与打包成app发布到移动设备上运行却是两码事。
相信大家和我一样,遇到过打包后运行app报 cc.pToAngle is not a function。原因是JSB没有绑定相关方法的实现。
JSB绑定文件在cocos2d-x/scripting/javascript/bindings目录下,在cocos2d_specifics.cpp的3548行开始都是cc.p相关的一些方法,我可以看到确实没有对pToAngle、pForAngle等方法进行绑定,所以会报错。当然这些方法的实现是很简单的,估计官方也是因为这样才不屑于写吧。
有简单且一劳永逸的方法,在cocos2d-html5/cocos2d/support目录下复制CCPointExtension.js到自己的项目目录中就可以了,用法没有任何的改变。
但是也有像cc.RADIANS_TO_DEGREES这样的方法在 CCPointExtension.js并没有实现,还是需要在自己的js项目里在不同的空间名下实现同名的方法。下面就把这些方法的实现列出来以供参考。
   
   
cc.pToAngle:
YJ=function(point){
returnMathatan2y,x);
};
pForAngle:
angle){
p(cos),sin));
};
cc . RADIANS_TO_DEGREES :
YJ . RADIANS_TO_DEGREES = function ( angle ){
return * 180 / Math PI ;
};
cc DEGREES_TO_RADIANS :
YJ . DEGREES_TO_RADIANS = function ( angle ){
return / 180 * Math PI ;
};
. Sequence create ():
这个方法在 JSB 中是不支持传出一个数组[]作为参数的,但在绝大多数情况下,我们也不知道会有多少 action ,所以也不能将参数一个一个的写进去,像这样: a1 a2 a3 中是支持传入 arguments 的,所以我们换个写法就能轻松搞定了,奇迹就在下面:
apply ( null actArray );
Spawn 这个方法与 有相同的问题,解决方法也类似:
);
还有一些无法解决的问题也列出来。

1.cc.LoaderScenegetInstance()不支持,但提供了Loaderpreload(),该方法返回唯一实例

JSB中无效,具体情况请移步:cocos2d-html5 关于中资源的预加载

2.ccLabelTTFextend()不支持,即无法继承,如果要二次开发,只能自己写个封装类

3.ccSpriteBatchNode也没有提供支持,所以也需要自己封装一下来做二次开发用

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读