位置: 编程技术 - 正文

【cocos2d-js官方文档】二十四、如何在android平台上使用js直接调用Java方法(cocos creator js ts)

编辑:rootadmin

推荐整理分享【cocos2d-js官方文档】二十四、如何在android平台上使用js直接调用Java方法(cocos creator js ts),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:cocos2dx官方教程,cocos2d官网,cocos2dx-js,cocos jsc,cocos2d-js教程,cocos jsc,cocos2d-js教程,cocos2d-js-min.js,内容如对您有帮助,希望把文章链接给更多的朋友!

在cocos2d-js 3.0beta中加入了一个新特性,在android平台上我们可以通过反射直接在js中调用java的静态方法。它的使用方法很简单:

在callStaticMethod方法中,我们通过传入Java的类名,方法名,方法签名,参数就可以直接调用Java的静态方法,并且可以获得Java方法的返回&#;。下面介绍的类名和方法签名可能会有一点奇怪,但是Java的规范就是如此的。

类名

参数中的类名必须是包含Java包路径的完整类名,例如我们在org.cocos2dx.javascript这个包下面写了一个Test类:

那么这个Test类的完整类名应该是org/cocos2dx/javascript/Test,注意这里必须是斜线/,而不是在Java代码中我们习惯的点.。

方法名

方法名很简单,就是方法本来的名字,例如sum方法的名字就是sum。

方法签名

方法签名稍微有一点复杂,最简单的方法签名是()V,它表示一个没有参数没有返回&#;的方法。其他一些例子:

(I)V表示参数为一个int,没有返回&#;的方法(I)I表示参数为一个int,返回&#;为int的方法(IF)Z表示参数为一个int和一个float,返回&#;为boolean的方法

现在有一些理解了吧,括号内的符号表示参数类型,括号后面的符号表示返回&#;类型。因为Java是允许函数重载的,可以有多个方法名相同但是参数返回&#;不同的方法,方法签名正是用来帮助区分这些相同名字的方法的。

目前Cocos2d-js中支持的Java类型签名有下面4种:

Java类型签名intIfloatFbooleanZStringLjava/lang/String;参数【cocos2d-js官方文档】二十四、如何在android平台上使用js直接调用Java方法(cocos creator js ts)

参数可以是0个或任意多个,直接使用js中的number,bool和string就可以。

使用示例

我们将会调用上面的Test类中的静态方法:

在你的控制台会有正确的输出的,这很简单吧。

注意

另外有一点需要注意的就是,在android应用中,cocos的渲染和js的逻辑是在gl线程中进行的,而android本身的UI更新是在app的ui线程进行的,所以如果我们在js中调用的Java方法有任何刷新UI的操作,都需要在ui线程进行。

例如,在下面的例子中我们会调用一个Java方法,它弹出一个android的Alert对话框。

然后我们在js中调用

这样调用你就可以看到一个android原生的Alert对话框了。

再加点料

现在我们可以从js调用Java了,那么能不能反过来?当然可以! 在你的项目中包含Cocos2dxJavascriptJavaBridge,这个类有一个evalString方法可以执行js代码,它位于frameworksjs-bindingsbindingsmanualplatformandroidjavasrcorgcocos2dxlib文件夹下。我们将会给刚才的Alert对话框增加一个按钮,并在它的响应中执行js。和上面的情况相反,这次执行js代码必须在gl线程中进行。

这样在点击OK按钮后,你应该可以在控制台看到正确的输出。evalString可以执行任何js代码,并且它可以访问到你在js代码中的对象。

转载自:

【cocos2d-js官方文档】二十五、Cocos2d-JS v3.0中的单例对象 为何将单例模式移除在Cocos2d-JSv3.0之前,所有API几乎都是从Cocos2d-x中移植过来的,这是Cocos2d生态圈统一性的重要一环。可惜的是,这种统一性也在很大

cocos2d CC_CALLBACK_0/1/2/3之间的区别 在使用回调函数时经常会遇到使用不同的回调函数,根据其定义#defineCC_CALLBACK_0(__selector__,__target__,...)std::bind(__selector__,__target__,##__VA_ARGS__)#defineCC_CALLBACK_

[置顶] cocos2dx3.1 texturepacker播放动画 先使用texturepacker把所需要使用的帧动画打包成一张图片和一个plist文件。使用大图的好处就是可以一次性载入图片,然后通过plist文件确定图片的位置,

标签: cocos creator js ts

本文链接地址:https://www.jiuchutong.com/biancheng/369125.html 转载请保留说明!

上一篇:【cocos2d-js官方文档】二十三、如何在IOS平台上使用js直接调用OC方法(cocos2dx官方教程)

下一篇:【cocos2d-js官方文档】二十五、Cocos2d-JS v3.0中的单例对象(cocos2dx-js)

  • 企业一般会涉及哪些行业
  • 贴现怎么计算公式
  • 收取商标权使用费分录
  • 企业所得税税前扣除政策
  • 土增清算尾盘销售
  • 公司开办期间的装修费怎么会计处理
  • 旅游服务住宿费入什么科目
  • 个税申报系统跟工资表累计扣除数不一致怎么办
  • 借已交税金贷银行存款
  • 企业收购资金计算公式
  • 会计学中管理费用属于什么
  • 工程施工购买的标示牌怎么开票给甲方
  • 医院的固定资产是由财务负责的吗?
  • 公司如何向税务部门举报
  • 未到期责任准备金属于什么科目
  • 电子发票隔月可以报销吗
  • 接受无形资产投资进项税
  • 小规模纳税人申报表怎么填
  • 进口货物内销的增值税处理
  • 给外国教授发邮件最后一句
  • 实收资本要求
  • linux系统怎么访问共享文件夹
  • 垫付员工保险费的会计科目
  • 公司资产转让要交多少税
  • 关于出售使用过的车辆
  • nodejs怎么降低版本
  • 银行存款转定期存款分录
  • 保洁费入账
  • 转租收入是否缴纳房产税江苏
  • 月末一次加权平均和移动加权平均的区别
  • Notojima岛附近的牡蛎养殖场,日本石川县 (© divedog/Shutterstock)
  • 小微企业认定标准时间
  • 开源ei
  • 5个 ChatGPT 功能,帮助你提升日常编码效率
  • java 通配符
  • 一般纳税人购进小规模纳税人的货物
  • 分公司利润怎么结转给总公司需要交税
  • 公司账户取出来要交税吗
  • mysql数据库压力测试工具
  • 公司内部的往来款用什么表格怎么做账
  • 内账需要哪些单据
  • 水泥贸易利润
  • 捆绑销售如何做会计处理合适?
  • 高新技术企业奖励政策
  • 税控盘减免税款分录
  • 收到保险公司的发票怎么做账
  • 收据和收款收据的法律效力
  • 收据注明实际到账时间
  • 纳税申报准备什么材料
  • 销售收入用营业收入还是营业总收入
  • 减免税款月末是否结平
  • 咨询服务费开票税率
  • 滴滴出行怎么开纸质发票
  • 离职补偿金要交个税吗
  • 备查账簿有没有固定的格式
  • 多种不同的 MySQL 的 SSL 配置
  • mysql 忘记密码重置密码
  • 彻底清除硬盘中的文件
  • centos6.8安装不上
  • win8系统运行窗口怎么打开
  • Ubuntu 32/64位安装音乐标签编辑器Kid3的方法
  • centos8拨号上网
  • win8系统崩溃无法开机
  • linux在服务器的份额
  • c:windowssys:em32mtgyu.dll 内存分配访问无效的解决办法
  • 升级win8系统
  • 在linux系统中,用来存放系统所需要的配置文件
  • 苹果win10更新48%不动了
  • 浅析js动态创建方法
  • Python 装饰器深入理解
  • CloudEditText
  • Python对象转列表
  • 车辆购置税2024年政策
  • 个体工商户年报补报流程
  • 员工离职了个人所得税年度汇算应申报未申报怎么处理
  • 国家税务总局遴选拟录取名单
  • 副局长是由局长任命的吗
  • A级纳税人和一般纳税人区别
  • 税务筹划和纳税申报哪个更容易学
  • 企业资质怎么报审
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设