http://www.jonllen.com/jonllen/flex/flex-js.aspx
一、在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的函数名,当然也可以为function (){alert(0)}匿名函数对象,后面的参数是JavaScript需要的参数。
Flex应用中,添加如下方法:
<?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>
分享到:
相关推荐
本文将详细介绍如何实现Flex与JavaScript之间的相互调用,包括具体的代码示例和配置步骤。 #### 二、Flex调用JavaScript 在Flex中调用JavaScript主要依赖于`ExternalInterface`类,这是一个静态类,提供了调用外部...
标题中的"Flex和JS的相互调用,传参"指的是在Flex应用中调用JavaScript函数,或者在JavaScript中调用Flex组件的方法,并传递参数。这种互操作性是通过Adobe提供的`ExternalInterface`类实现的,它允许Flex和...
flex 与JS间的相互调用和参数传递,简单可运行实例
本篇将详细探讨“flex与JS实现互相调用”的相关知识点。 一、Flex与JavaScript的互操作性 Flex是Adobe开发的一个用于构建富互联网应用(RIA)的框架,基于ActionScript 3.0,提供了强大的图形和动画功能。...
压缩包中的 "Flex-js-activex-相互调用自己做的实例" 文件很可能是包含了一个实际应用示例,展示了如何实现 Flex 4.5 与 JavaScript 和 OCX 控件的交互。这个实例可能包括一个 Flex 项目,其中定义了与 JS 交互的...
两者都基于Adobe Flash Player运行,因此在某些场景下,它们可以互相调用功能或共享数据。 1. **Flex调用Flash**: 当Flex应用程序需要利用Flash的高级图形或动画能力时,可以使用SWFObject库将Flash内容嵌入到...
标题 "Flex与Javascript相互调用例子(附源码)" 指涉的是一个技术主题,主要探讨了如何在Adobe Flex应用程序中与JavaScript进行交互。Flex是基于ActionScript 3.0的开源框架,用于构建富互联网应用(RIA),而...
Flex ActiveX 通过JS相互调用是一个常见的技术实践,尤其在需要在Web环境中结合Adobe Flex(一种基于ActionScript的富互联网应用开发框架)与ActiveX控件(主要在Internet Explorer中运行的Windows平台专有技术)...
Flex和Flash是两种在Web开发中广泛使用的技术,它们各自有着独特的优势,但在某些场景下,需要它们相互协作,实现更复杂的功能。本教程通过一个实际的调用实例,展示了Flex与Flash如何相互通信。 Flex是基于...
本文将详细探讨如何通过Adobe Flex的`ExternalInterface`类实现AS与JS的相互调用。 首先,让我们了解`ExternalInterface`类。它是ActionScript 3中提供的一种接口,允许Flex应用程序与包含它的HTML页面进行通信。这...
本文将详细介绍如何使用ExternalInterface接口实现Flex与JavaScript之间的相互调用,并给出具体的示例代码。 #### 二、Flex调用JavaScript方法 在Flex中调用JavaScript是一种常见的需求,这使得Flex能够利用网页中...
Flex与JavaScript的交互主要依赖于ExternalInterface,它使得ActionScript和JavaScript能够互相调用对方的函数,实现数据交换。这个过程涉及了函数注册、调用以及跨域和兼容性的处理。通过这样的交互,开发者可以...
### Flex与JavaScript交互详解 #### 一、在JavaScript中调用Flex方法 ...以上所述的方法使得Flex和JavaScript能够有效地相互调用,从而实现更复杂的交互式功能。这对于开发具有丰富交互性的Web应用程序是非常有用的。
在本文中,我们学习了如何通过Flash Player的ExternalInterface类来实现Flex与JavaScript之间的相互调用和数据传递。包括在Flex应用中暴露函数给JavaScript、在JavaScript中调用Flex方法、向Flex传参,以及如何处理...
总结来说,Flex与JavaScript之间的通信依赖于`ExternalInterface`,它提供了调用JavaScript函数和注册可被JavaScript调用的Flex方法的能力。这种通信方式使得两种技术能够协同工作,为开发者提供更丰富的用户交互...
在MFC端,可以通过IE浏览器控件的接口调用JavaScript方法,从而传递数据和控制Flex应用的行为。 6. **数据交换**:MFC可以通过调用Flex的ExternalInterface函数,传递数据到Flex,比如设置UI状态或更新业务数据。...
描述中提到的"flex与Js 通信 相互调用"是指在Flex应用中可以调用JavaScript函数,同时JavaScript也可以调用Flex应用内的方法。这是一个双向的交互过程。例如,你可能需要在Flex应用中获取用户在HTML表单中的输入,...
综上所述,Flex与JavaScript的相互通信是一个强大而实用的技术,它结合了Flex的富媒体表现力和JavaScript的灵活性,为Web应用带来了更多可能性。通过深入理解并实践“FlexAndJavaScriptRun”压缩包中的示例,开发者...