、在JavaScript中调用Flex方法
在Flex中可以用ExternalInterface来调用Flex的方法,途径是通过在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>
那么在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>
http://www.blogjava.net/usherlight/archive/2006/06/26/55155.html
分享到:
相关推荐
标题 "Flex与Javascript相互调用例子(附源码)" 指涉的是一个技术主题,主要探讨了如何在Adobe Flex应用程序中与JavaScript进行交互。Flex是基于ActionScript 3.0的开源框架,用于构建富互联网应用(RIA),而...
在本例子中,我们将探讨如何使用Flex与Java后端进行远程调用,借助Adobe的BlazeDS服务。BlazeDS是Flex与Java服务器之间通信的一个中间件,支持AMF(Action Message Format)协议,提供数据推送、拉取和消息代理等...
ActionScript代码会定义一个可从JavaScript调用的方法,例如: ```actionscript if (ExternalInterface.available) { ExternalInterface.addCallback("callFromJS", function(param1, param2):void { // 处理来自...
例如,以下是一个简单的Flex代码片段,展示了如何定义一个可由JavaScript调用的函数: ```actionscript import flash.external.ExternalInterface; if (ExternalInterface.available) { ExternalInterface....
- 另一方面,Flex也可以监听浏览器的事件,例如通过`ExternalInterface.addCallback('jsFunction', flexFunction)`注册一个回调函数,当JavaScript调用`jsFunction()`时,`flexFunction`会被执行。 4. **错误排查*...
2. **添加调用接口**:在Flex中,你可以通过`ExternalInterface.addCallback`方法定义一个函数,该函数可以被JavaScript调用。例如: ```actionscript if (ExternalInterface.available) { ExternalInterface....
- **JavaScript调用Flex**: 首先,Flex组件需要声明可被JavaScript调用的方法,然后在JavaScript中通过组件ID调用这些方法。例如,在Flex中声明一个可调用方法: ```actionscript [Bindable] public function ...
描述提到这是一个使用Flex Builder 3(fb3)修改过的例子,强调了实现过程中需要注意的事项,并提示在调试模式下可能不会显示本地HTML。这可能是因为在调试模式下,安全限制可能会阻止对本地文件系统的直接访问,...
这使得Flex应用可以通过浏览器访问,并且可以利用JavaScript与Flex组件进行交互。 7. **项目配置**:`.actionScriptProperties`和`.flexProperties`文件通常包含了项目的配置信息,如编译设置、库路径等。`.project...
在IT行业中,JavaScript(JS)和Flex是两种广泛使用的前端技术。JS主要应用于浏览器端,负责处理用户交互和动态更新页面,而Flex是基于ActionScript 3(AS3)的开发框架,主要用于创建富互联网应用程序(RIA)。在...
Flex3是一种基于ActionScript编程语言和MXML标记语言的开源框架,主要用于构建富互联网应用程序(RIA)。这个工程示例向我们展示了如何在Flex应用中与Java服务器端的JSP(JavaServer Pages)进行交互,从而实现...
首先,我们看一个Flex调用JavaScript的例子。在`FlexConnectJavaScript.mxml`中,我们定义了一个Flex应用程序,其中包含一个按钮和一个标签。当用户点击按钮时,会触发`invokeJavaScript`函数,这个函数使用`...
3. **JavaScript调用** 在JavaScript中,我们可以通过`window`对象来调用注册过的ActionScript函数。函数名应与在ActionScript中注册的一致。 ```javascript function invokeASFunction(param1, param2) { var ...
2. JavaScript调用Flex JavaScript调用Flex方法的步骤首先是注册Flex中的AS方法为可被JavaScript调用。这通过`ExternalInterface.addCallback`完成: ```xml <![CDATA[ import flash.external....
AS3是Flex中使用的脚本语言,它的语法与ECMAScript(JavaScript)相似,但更为强大和严谨。AS3提供了丰富的类库和API,使得开发者能够创建出功能丰富的图形用户界面和与服务器交互的应用。 Java作为后端语言,有着...
总结来说,Flex与JavaScript之间的通信依赖于`ExternalInterface`,它提供了调用JavaScript函数和注册可被JavaScript调用的Flex方法的能力。这种通信方式使得两种技术能够协同工作,为开发者提供更丰富的用户交互...
这个压缩包提供的"FlexImage简单相册例子(含源码)"是一个很好的学习资源,可以帮助开发者理解如何利用FlexImage库来构建功能丰富的图像浏览体验。 首先,FlexImage库的核心特性是其灵活性。它允许开发者自由地...
本篇文章将重点讲解EXTJS中的树形组件(Tree),以及如何使用EXTJS开发一个类似于Flex树的插件,并结合提供的"TreeDemo"来探讨其功能和调用方法。 首先,EXTJS中的树形组件(Tree)是EXTJS的treePanel,它用于展示...
- 在Flex中,通过`ExternalInterface.addCallback()`注册要调用的JavaScript函数,然后在需要的时候调用这个函数,函数会转发调用到Applet的相应方法。 3. **Applet向Flex发送数据**: - Applet通过`javascript:`...