AS 调用 creator js 与 js 调用 AS 方法

JavaScript013

AS 调用 creator js 与 js 调用 AS 方法,第1张

1. cocos creator js 调用 AS 的方法

❶ 安卓端:

在 Android 应用中,Cocos 引擎的渲染和 JS 的逻辑是在 GL 线程中进行的,而 Android 本身的 UI 更新是在 App 的 UI 线程进行的,所以如果我们在 JS 中调用的 Java 方法有任何刷新 UI 的操作,都需要在 UI 线程进行。

❷ js 端:

2. AS 端调用 js 方法

js 端: 被调用的方法一定要是 全局函数 ,要不然会报错

AS 端:  要返回到 GL线程里调用

具体请参考 cocos creator 官方文档中的 ‘Java 原生反射机制’ : 如何在 Android 平台上使用 JavaScript 直接调用 Java 方法

'JS给AS设置变量

function setflash(varn, value){

var flash = document.getElementById("index")

flash.SetVariable(varn,value)

}

'JS获取AS变量

function getVar(varn){

var v = GetVariable(varn)

}

'JS控制AS跳转

function goto() {

n++

document.myFlash.GotoFrame(n)

}

'AS调用JS函数

on (release) {

getURL(\"JavaScript:alert('hello,world')\")

}

'JS间接调用AS函数

原理:JS改变AS的值,AS跟据值的变化调用其函数

var stat=0

setInterval(test,300){

if (stat==1) doFlash()

}

function doFlash(){

}

JS

flash.SetVariable(star,1)

通过ExternalInterface调用js函数

语法:

ExternalInterface类的call方法

ExternalInterface.call(functionName:String,...arguments):*

//第一个参数是js的函数名,后面的是js函数的参数

举例:

1、js函数

function hello(h){

  alert(h)

}

2、flash调用

ExternalInterface.call(hello,"nihao")  调用后会弹出nihao