cocos2d-x js与Java互调

原创 2016年08月29日 11:11:26

cocos2d-x js与Java互调

frameworks\runtime-src\proj.android\src\org\cocos2dx\javascript的文件夹下新建JStest.java

package org.cocos2dx.javascript;
import java.util.logging.Logger;
public class JStest {

    public static void hello(String msg){
        Logger log = Logger.getLogger("result"); 
                log.info(msg); 
    }

    public static int sum(int a){
        return a + 2;
    }

}

因为cocos 封装好了,一层胶水层,直接调用就可以了

在JS中的调用

jsb.reflection.callStaticMethod("org/cocos2dx/javascript/JStest", "hello", "(Ljava/lang/String;)V", "this is a message from js");
var result = jsb.reflection.callStaticMethod("org/cocos2dx/javascript/JStest", "sum", "(I)I", 3);

cocos-js toast代码:转载的,原地址:点击打开链接

新建Toast.js

var ToastLayer = cc.Layer.extend({
  contentLabel:null,
  ctor:function (content) {
    this._super();
    var size = cc.winSize;

    this.contentLabel = new cc.LabelTTF(content, "Arial", 23);
    this.contentLabel.setColor(cc.color(255,0, 0));
    this.contentLabel.setAnchorPoint(0,0);
    this.contentLabel.setPosition(80, 100);
    this.contentLabel.setDimensions(cc.size(860,70));
    this.contentLabel.textAlign = cc.TEXT_ALIGNMENT_CENTER;
    this.contentLabel.verticalAlign = cc.VERTICAL_TEXT_ALIGNMENT_CENTER;
    this.addChild(this.contentLabel, 1);
    this.setCascadeOpacityEnabled(true);
  },
  //设置Toast显示内容
  setContent:function(content) {
    this.contentLabel.setString(content);
  },
  //设置Toast显示时间,包括显示持续时间和淡出持续时间
  show:function(delay, sec) {
    var delayOut = delay || 1.5;
    var timeOut = sec || 0.5;
    this.setOpacity(255);
    this.runAction(cc.sequence(cc.delayTime(delayOut), cc.fadeOut(timeOut)));
  }
});

引用代码:

//新建Layer,添加到场景(Scene)中
var toastLayer = new ToastLayer("Welcome to Toast");
toastLayer.setOpacity(0); //初始设置Toast层不显示
this.addChild(toastLayer);

//调用Toast类
//设置Toast显示内容
toastLayer.setContent("显示内容");
//显示Toast
toastLayer.show();

cocos-js 进度条代码:

var to1 = cc.ProgressTo(0.01,100);
            var progressCooling = new cc.ProgressTimer(cc.Sprite(res.progress_jpg));  
            progressCooling.setType(cc.ProgressTimer.TYPE_BAR);

           // progressCooling.setPercentage(0);  // 回复到0  
            progressCooling.x = cc.winSize.width / 2;
            progressCooling.y = cc.winSize.height / 2 - 200;
          progressCooling.setVisible(true);
          progressCooling.runAction(cc.RepeatForever(to1));  
          this.addChild(progressCooling, 5); 

cocos-js 创建json代码:

 将对象转换为json字符串:  JSON.stringify 将json字符串转为对象:JSON.parse 
var s={"id":2}; var params = JSON.stringify(s);

相关文章推荐

cocos2d-js如何在android平台上使用js直接调用Java方法

地址:https://github.com/chukong/cocos-docs/blob/v3-unified-documentation/manual/framework/html5/v3/ref...

cocos2dx-js(3.14版本) JS与C++ 互调 JS与JAVA 互调,JS与OC 互调

1, JS 与 C++ 互调 2, JS 与 Java 互调 3, JS 与 OC 互调...

Cocos2d-JS 调用Java

JS: //调用hello方法 jsb.reflection.callStaticMethod("org/cocos2dx/javascript/Test", "hello", "(Lj...

Cocos Creator跨平台的调用方法

原文介绍的是cocos js,因为creator是亲生的,血统一样,而且官方文档这里根本没有介绍,所以参考这个就行了 首先从我们ProjectM的开发背景开始,项目采用的Cocos2d-JS 引擎是为...

cocos js- android 平台 java与js互调 , ios平台 Objective-c与js互调

cocos js ios平台 js 调用 Objective-c ios平台 Objective-c 调用js android平台 java 调用 js android平台 js调用java...

cocos2d-JS 进阶主题 - JS到JAVA反射

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

cocos2djs游戏android sdk接入

cocos2djs游戏sdk接入 主要登陆接口和支付接口(一般认真的跟着接入文档走  基本没什么问题  但是细节上会有一些区别和误区) 1.首先从sdk官网或运营获得参数 sdk包...

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

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

cocos js js java互调 (如何在ANDROID平台上使用JS直接调用JAVA)

在cocos2d-js 3.0beta中加入了一个新特性,在android平台上我们可以通过反射直接在js中调用java的静态方法。它的使用方法很简单: var o = jsb.reflecti...
  • cnmm22
  • cnmm22
  • 2015年06月22日 12:56
  • 829

千百万Java开发者的福音:跨平台Cocos2d-Java游戏引擎诞生

跨平台Cocos2d-Java游戏引擎以及配套的CocosEditor2.0游戏开发工具终于诞生了。使用Java语言来开发Cocos2d跨平台游戏, 和-lua,-js 的风格相近API,毋庸置疑,这...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:cocos2d-x js与Java互调
举报原因:
原因补充:

(最多只允许输入30个字)