flex与JS互调方法
关键字: externalinterface
一、在JavaScript中调用Flex方法
在Flex中可以用ExternalInterface来调用Flex的方法,途径是
1. 通过在Flex应用可调用方法列表中添加指定的公用方法。在Flex应用中通过调用addCallback()可以把一个方法添加到此列表中。 addCallback将一个ActionScript的方法注册为一个JavaScript和VBScript可以调用的方法。
addCallback()函数的定义如下:
addCallback(function_name:String, closure:Function):void
function_name参数就是在Html页面中脚本调用的方法名。closure参数是要调用的本地方法,这个参数可以是一个方法也可以是对象实例。
举个例子:
<mx:Script>
import flash .external.*;
public function myFunc():Number {
return 42;
}
public function initApp():void {
ExternalInterface.addCallback("myFlexFunction",myFunc);
}
</mx:Script>
2.那么在Html页面中,先获得SWF对象的引用,也就是用<object .../>声明的Swf的Id属性,比如说是MyFlexApp。然后就可以用以下方式调用Flex中的方法。
<SCRIPT language='JavaScript' charset='utf-8'>
function callApp() {
var x = MyFlexApp.myFlexFunction();
alert(x);
}
</SCRIPT>
<button onclick="callApp()">Call App</button>
二、在Flex中调用 JavaScript
你可以调用Html页面中的JavaScript,通过与JavaScript的交互,可以改变Style,调用远程方法。还可以将数据传递给Html页面,处理后再返回给Flex,完成这样的功能主要有两种方法:ExternalInterface()和navigateToUrl()。
在Flex中调用JavaScript最简单的方法是使用ExternalInterface(),可以使用此API调用任意JavaScript,传递参数,获得返回值,如果调用失败,Flex抛出一个异常。
ExternalInterface封装了对浏览器支持的检查,可以用available属性来查看。
ExternalInterface的使用非常简单,语法如下:
flash.external.ExternalInterface.call(function_name: String[, arg1, ...]):Object;
参数function_name是要调用的JavaScript的函数名,后面的参数是JavaScript需要的参数。
举个例子说明如何调用JavaScript函数
Flex应用中,添加如下方法:
<mx:Script>
<?xml version="1.0" encoding="iso-8859-1"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml ">
<mx:Script>
import flash.external.*;
public function callWrapper():void {
var f:String = "changeDocumentTitle";
var m:String = ExternalInterface.call(f,"New Title");
trace(m);
}
</mx:Script>
<mx:Button label="Change Document Title" click="callWrapper()"/>
</mx:Application>
Html页面中有如下函数定义:
<SCRIPT LANGUAGE="JavaScript">
function changeDocumentTitle(a) {
window.document.title=a;
return "successful";
}
</SCRIPT>
分享到:
相关推荐
android与JS互调,android与JS互调,android与JS互调
android js 互调
整理好的Unity C#与JS互调 脚本互调,原理较简单!示例就三个脚本,简单明了!
Android与js互调的Demo,希望可以帮助到大家! 对应博客地址:http://blog.csdn.net/qq_34947883/article/details/77990527
android原生与js互调 android原生与js互调 android原生与js互调
wpf内嵌网页,实现与JS的互调的一个小Demo。 因为项目中安装了Cefsharp所以比较大。
QT与JavaScript互调文档
Android与Js互调,Java和Js互相调用例子,博客地址:https://blog.csdn.net/dreams_deng/article/details/104738687
java和js互调
webview和js互调
1.本文采用的是android调用assest中的本地.html文件,webview展示(加载网络的html效果是一样的,把url替换掉就行) 2.包含本地.html文件加载,点击.html控件,Android端响应 3.包含本地.html文件加载,点击.html... ...
QT与JavaScript互调是通过QWebFrame的两个函数来实现的:addToJavaScriptWindowObject()将QObject对象传给JS,这样JS就能调用QObject的public slots函数。QT通过evaluateJavaScript()直接调用JS中的函数
最近写webview中js与java方法互调,遇到拉一些问题不过最终都解决啦你遇到的问题在这个demo里都会找到答案的
Android(Java)与JavaScript(HTML)交互有四种情况: 1) Android(Java)调用HTML中js代码 2) Android(Java)调用HTML中js代码(带参数) 3) HTML中js调用Android(Java)代码 4) HTML中js调用Android(Java...
在项目中有时候需要APP和Js之间相互调用方法来实现某些功能,本例子主要介绍iOS和Js是怎么实现相互调用对方的方法。
NULL 博文链接:https://yangactive.iteye.com/blog/1561610
js与oc互调
Android可以调用JavaScript,JavaScript也可以调用Android
ZR_JsBridgeDemoandroid中webview与javascript互调
C++ 与 JS 互调、异步网络通信文档,game.zip 一、 开发环境:Windows 10 、Cocos2d-JS 3.10 二、 开发工具:Visual Studio Code 、ADT 、NDKr10c 三、 异步网络通信库:Boost Asio