- 浏览: 290465 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (163)
- ETL (4)
- Oracle (24)
- Win (2)
- Apache (5)
- struts2 (1)
- ArcGIS (21)
- Java (17)
- other (6)
- JavaScript (4)
- Xml (4)
- c# (2)
- webSphere (5)
- Ext (2)
- Flex (35)
- Svn (3)
- tomcat (3)
- MyEclipse (4)
- MySQL (2)
- ibatis (2)
- log4j (4)
- spring (1)
- SqlServer (2)
- android (4)
- ios (3)
- SDE (2)
- mac (1)
- Linux (9)
- Mina2 (1)
最新评论
-
markss:
您好,请问kettle循环处理的内存泄漏问题是否已经解决了?毕 ...
Kettle -
1qqqqqq:
图呢 ???
Myeclipse 9.0集成FLASH BUILDER 4.5 -
hanyi366:
现在MyEclipse 都2014版了,好像MyEclipse ...
Visual Editor 插件 安装 -
cnjmwr:
MyEclipse8.6的Eclipse版本是3.5的 ve1 ...
Visual Editor 插件 安装 -
cloudphoenix:
大神 我特地登陆来回帖,真是帮了我的大忙了。看了一个多月的AS ...
FlexGlobals.topLevelApplication
最近做的一个项目要用到Flex与Javascrip之间的交互,所以花时间学习了一下。在
网上找了好多关于这方面的文章,但是介绍的都不是很全面,主要是例子程序写的不是很
好,很多都还存在一些问题,download下来后,发现还要做些修改才能运行。
先分别简要介绍一下Flex调用Javascript函数和Javascript调用Flex函数。
1. Flex调用Javascript函数
Flex通过使用ExternalInterface.call()函数来调用Javascript中的方法,此函数的原型为
ExternalInterface.call(function_name:String, parameter:String),参数function_name
是调用的javascript的函数名,parameter是Javacript函数需要的参数。此函数还可以有返回值
,也就是说Javascript函数可以返回一个结果给ExternalInterface.call()这个函数调用.ExternalInterface
封装了对浏览器支持的检查,可以用available属性来查看。
先举个简单的例子:
Javascript函数:
function sayHelloFromJs(message)
{
alert(message); //message是由flex端传过来的
return "echo from javascript:" + message; //返回给Flex端的消息
}
Flex调用:
var str:String = ExternalInterface.call("sayHelloFromJs","Hello,Javascript.");
Alert.show(str); //显示javascript端返回的消息
2. Javascript调用Flex函数:
Flex端需要注册和页面交互的Javascript方法。通过ExternalInterface的addCallback()函数实现,
addCallback()函数的原型为addCallback(js_function:String, flex_function:Function),第一个参数
js_function是Javascript可以调用的方法名称,第二个参数flex_function是Javascript回调的Flex方法.
举个简单的例子:
Flex端:
public function sayHelloFromFlex(message:String):String
{
Alert.show(message); //Javascript端传过来的消息
var str:String = "echo from flex:" + message;
return str; //返回给Flex端的消息
}
public function initApp()
{
ExternalInterface.addCallback("sayHelloFromFlex",sayHelloFromFlex);//注册与页面交互的方法
}
Javascript端:
在javascript端首先要获取swf对象的引用,我们假设我们已经拿到了该引用,为MyFlexApp.
swf的获取将在下面专门介绍。
<script language = 'Javacript' charset = 'uft-8'>
function testFlexFunc()
{
var strMessage = MyFlexApp.sayHelloFromFlex("Hello, Flex");
alert(strMessage);
}
</script>
<button onclick="testFlexFunc()"> TestFlexFunc</button>
3. Javascript端获取swf对象的引用:
在Javascript代码中,我们首先要定义一个object标签对象,object标签对象的大概格式
如下:
<object type='application/x-shockwave-flash'
data='FlexAndJs.swf' width='600' height='480'
name='test' id='MyFlexApps'>
<param name='allowScriptAccess' value='always' />
<param name='movie' value='FlexAndJs.swf' />
<param name='quality' value='high' />
<param name='scale' value='noScale' />
<param name='wmode' value='transparent' />
<embed src="FlexObject.swf" width="640" height="378"
name ="FlexObject"
play="true"
loop="false"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer">
</embed>
</object>
定义好这个节点标签后,我们还需要在写一个JS函数来获取该swf对象的引用。
function getSWFObject(movieName)
{
if(document[movieName])
{
return document[movieName];
}else if(window[movieName]){
return window[movieName];
}else if(document.embeds && document.embeds[movieName]){
return document.embeds[movieName];
}else{
return document.getElementById(movieName);
}
}
然后上面2中的testFlexFunc()函数的那条调用Flex函数的语句可以改写为:
var strMessage = getSWFObject["MyFlexApps"].sayHelloFromFlex("Hello, Flex");
最后给出一个完整的例子供大家参考,包括Flex端和JS端的完整代码:
Flex代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initApp()"
layout="absolute" width="200" height="160">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
public function sayHelloFromFlex(message:String):String{
Alert.show(message);
var str:String = "Echo from Flex: "+ message;
return str;
}
public function initApp():void {
Security.allowDomain("*");
Security.allowInsecureDomain("*");
ExternalInterface.addCallback("sayHelloFromFlex",sayHelloFromFlex);
}
public function invokeJsFunc():void {
var str:String = ExternalInterface.call("sayHelloFromJs","Hello,Javascript.");
Alert.show(str);
}
]]>
</mx:Script>
<mx:Button x="39" y="68" label="Invoke JS Function" click="invokeJsFunc()"/>
</mx:Application>
Html代码:
<html>
<head> </head>
<body scroll="no">
<script>
function sayHelloFromJs(value){
alert(value);
return "Echo from Js: " + value;
}
function invokeFlexFunc(){
var message = "Hello,Flex.";
var str = getSWFObject("MyFlexApps").sayHelloFromFlex(message);
alert(str);
}
function getSWFObject(movieName)
{
if(document[movieName])
{
return document[movieName];
}else if(window[movieName]){
return window[movieName];
}else if(document.embeds && document.embeds[movieName]){
return document.embeds[movieName];
}else{
return document.getElementById(movieName);
}
}
</script>
<object type='application/x-shockwave-flash'
data='FlexAndJs.swf' width='200' height='160'
name='test' id='MyFlexApps'>
<param name='allowScriptAccess' value='always' />
<param name='movie' value='FlexAndJs.swf' />
<param name='quality' value='high' />
<param name='scale' value='noScale' />
<param name='wmode' value='transparent' />
</object>
<input type="button" value="InvokeFlexFunction" onclick="invokeFlexFunc()"/>
</body>
</html>
发表评论
-
Flex 记住密码
2012-09-01 15:08 12761 在密码正确的情况下,如果“记住密码”是选中的,那么将用户名 ... -
FlexClient、MessageClient、FlexSession
2012-08-16 09:17 909服务端FlexClient、MessageClient、Fle ... -
Flex加密算法设计方案
2012-07-31 10:09 1161对于 Web 应用程序,安全登录是很重要的。 ... -
Flex 读取 bmp 格式的图片
2012-07-07 14:34 2577现在要求把后台bmp格式的图片,在flash中显 ... -
Flex组件的行为和动画效果
2012-07-05 16:44 882触发器名称 ... -
flex项目中用到了关于时间的计算
2012-07-05 11:11 19141.计算两时间的差值 var date1:Date ; var ... -
使用搜索的关键字过滤DataGrid的行
2012-06-09 14:39 803这里主要展示如何使用搜索的关键字过滤DataGrid的行。其实 ... -
flex的取整(取数)数学运算实例
2012-06-05 20:23 2565<?xml version="1.0&q ... -
自动获得flex中输入框焦点
2012-05-18 08:51 735//在html页面中增加 //swfname--为sw ... -
Flex 滚动条样式设置
2012-04-27 18:00 2589滚动条滚动慢问题:verticalLineScrollSize ... -
Flex组件优化 callLater
2012-04-11 11:29 921Flash & Flex组件优化的杀手锏call ... -
async-threading
2012-04-10 16:09 956开源项目async-threading能使as3支持多线 ... -
Flex异步令牌AsyncToken的用法介绍
2012-04-10 14:03 803什么是AsyncToken?官方文档是这样描述的:&q ... -
Arcgis Symbol
2012-04-07 17:02 7362ArcGIS Engine9.3为开发人员提供了32种符号,主 ... -
ArcGis api for flex 中 Map控件的属性
2012-03-24 17:43 4061<?xml version="1.0&q ... -
关于Flex屏蔽默认右键菜单
2012-03-21 11:34 9371.如果你是Desktop Application 监听事件 ... -
Flex异步令牌AsyncToken的用法介绍
2012-03-14 18:20 743什么是AsyncToken?官方文档是这样描述的:&quo ... -
Flex session和HTTP session过期时间(timeout)的设置方法
2012-03-13 17:52 1513<!-- --> 以下设置的time ... -
FLEX使用remoteobject交互结合spring AOP思想控制项目权限
2012-03-13 17:50 1412本文介绍如何用FLEX+SPRING 使用remoteo ... -
Flex Alert组件使用方法
2012-03-13 13:39 1087Flex Alert组件使用方法,通过Alert.show(. ...
相关推荐
标题"flex和javascript交互例子"指向了这个主题的核心——如何在Flex应用中调用JavaScript函数,以及反过来在JavaScript中调用Flex的方法。这种技术通常被称为“Bridge”或“跨域通信”。 在Flex中,我们可以使用`...
### Flex与JavaScript交互详解 #### 一、引言 随着Web技术的发展,不同语言之间的通信变得尤为重要。在Flex与HTML的结合中,Flex通常作为富客户端应用,而JavaScript则负责处理网页逻辑。为了实现二者之间的无缝...
Flex与JavaScript交互是一种常见的技术,它允许在Adobe Flex(基于ActionScript 3的富互联网应用程序框架)和网页中的JavaScript之间进行通信。这种交互性对于构建混合型应用,特别是在需要利用浏览器内核特性的Web...
### Flex与Ajax交互、Flex与JavaScript交互 #### 一、引言 随着Web技术的发展,Flex作为一种基于Adobe Flash平台的应用开发框架,在企业级应用中曾经非常流行。它提供了丰富的用户界面构建工具,并能够与服务器端...
Flex与JavaScript交互是Web开发中的一个重要技术,它允许在Adobe Flash Player或Adobe AIR环境中运行的Flex应用程序与HTML页面中的JavaScript代码进行通信。这种交互性极大地扩展了富互联网应用(RIA)的功能,使得...
### Flex与JavaScript交互详解 #### 一、在JavaScript中调用Flex方法 在Flex与JavaScript进行交互时,可以通过`ExternalInterface`实现从JavaScript调用Flex中的方法。这主要是通过向Flex应用注册特定的公共方法来...
在实现Flex与JavaScript交互时,你需要: 1. 在Flex端,使用`ExternalInterface.addCallback()`方法注册一个可供JavaScript调用的函数。 2. 在JavaScript端,通过Flash对象(通常是`swfObject`)来调用这个注册的...
### JavaScript与Flex交互知识点 #### 一、简介 在Web开发领域中,JavaScript与Flex的交互是一个非常实用且重要的技术组合。Adobe Flex是一种用于构建和部署丰富的互联网应用程序(RIA)的强大框架,它支持多种...
Flex3与JavaScript之间的交互验证是Web开发中的一个重要概念,它允许Adobe Flex应用程序(基于ActionScript 3)与网页上的JavaScript代码进行通信。这种交互性极大地增强了富互联网应用(RIA)的功能,使得Flex组件...
Flex与Servlet之间的数据交互是JavaWeb开发中的一个重要环节,它涉及到客户端富互联网应用程序(RIA)与服务器端数据处理的协同工作。Flex作为一个基于Adobe Flash Player的前端开发框架,主要用于创建具有丰富用户...
Flex与JavaScript交互是Web开发中的一个重要技术,它允许在Adobe Flex应用和HTML页面之间进行数据交换和功能调用。在本示例中,我们将深入探讨如何实现这种交互,并通过具体的步骤来理解其工作原理。 首先,Flex是...
Flex SDK中的Flash Remoting组件支持AMF,使得Flex与PHP之间的数据交互更为高效。PHP可以使用如Zend AMF或PHP AMF Extension等库来处理AMF数据。 5. **Flex与PHP数据交互流程** - 创建Flex客户端:定义UI组件,...
标题中的“Flex与JavaScript相互调用例子”是指在Adobe Flex应用程序中如何与JavaScript进行交互的实践示例。Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。JavaScript则是一种...
ExternalInterface是Flex提供的一个API,允许ActionScript(Flex的主要编程语言)代码与JavaScript代码之间建立双向通信桥梁。 **ExternalInterface的基本用法** 1. **启用ExternalInterface**:在Flex中,首先...
Flex和JavaScript交互是Web开发中的一个重要领域,尤其在构建富互联网应用程序(RIA)时。这两个技术结合使用,可以实现强大的用户界面和动态功能。本文将深入探讨Flex与JavaScript的交互机制,以及如何实现它们之间...
标题中的"C#与Flex交互"指的是在开发过程中,使用C#作为后端处理逻辑,而Flex作为前端用户界面,两者之间进行数据和功能的通信。Flex是一种基于Adobe AIR和Flash Player运行时的开源框架,主要用于构建富互联网应用...
`IFrame.as`可能定义了一个IFrame对象,包含了初始化、加载URL、与JavaScript交互等功能。而`IFrameExternalCalls.as`可能包含了一系列与外部JavaScript进行交互的方法,如添加回调、触发事件等。 在实际应用中,...
1. **跨域策略文件**:由于Flash Player的安全限制,Flex应用在与JavaScript交互前需要加载一个跨域策略文件,允许它与不同源的JavaScript进行通信。这个文件通常命名为crossdomain.xml,放置在服务器的根目录下。 ...
在Flex应用中,我们可以通过JavaScript与Flash内容交互,从而实现Flex和Flash之间的数据传递。 2. **事件监听**: 为了实现交互,我们需要在Flex和Flash之间设置事件监听器。例如,在Flash端,可以发布一个自定义...