在cocos2d-js 3.0+ 中,在android平台上我们可以直接在js中调用java方法。使用方法:
1 | var o = jsb.reflection.callStaticMethod(className, methodName, methodSignature, parameters...) |
例如我们在org.cocos2dx.javascript这个包下面写了一个Test类:
1 | package org.cocos2dx.javascript; |
使用示例:
我们将会调用上面的Test类中的静态方法:1
2
3
4
5
6
7
8
9
10//调用hello方法
jsb.reflection.callStaticMethod("org/cocos2dx/javascript/Test", "hello", "(Ljava/lang/String;)V", "this is a message from js");
//调用第一个sum方法
var result = jsb.reflection.callStaticMethod("org/cocos2dx/javascript/Test", "sum", "(II)I", 3, 7);
cc.log(result); //10
//调用第二个sum方法
var result = jsb.reflection.callStaticMethod("org/cocos2dx/javascript/Test", "sum", "(I)I", 3);
cc.log(result); //5
注意
- 这个Test类的完整类名应该是org/cocos2dx/javascript/Test,注意这里必须是斜线/,而不是在Java代码中我们习惯的点.。