Flex与JavaScript的交互:调用JavaScipt或者被JavaScript调用
一、在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 οnclick="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>
Flex与JavaScript的交互:调用JavaScipt或者被JavaScript调用相关推荐
- flex与flash的交互
所谓flex与flash的交互,说白了就是在felx里加载swf文件,flex和swf中的脚本互相调用,以下一个小实例. flash 方面建两个关键帧,在第二帧上添加一个button,命名为ozbut ...
- PHP学习笔记-PHP与JavaScript的交互
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/51814192 本文出自:[顾林海的博客] 前言 前两篇笔记PHP学习笔 ...
- UIWebView与JavaScript的交互
总体概述: 实质上oc与js的通信交互就是发送消息,也即函数调用,只要在交互的过程正确的指定好对方需要调用的函数和参数就ok oc-->js stringByEval ...
- 高德地图组件在Android的应用以及Android与JavaScript的交互(一)
最近在慕课网学习了关于高德地图组件的课程(其实就是一个广告,内容和官网的API完全一样),发现这个JavaScript API比Android API简单方便多了,于是就打算放在Android APP ...
- asp php flash java,Linux_Flash 和 ASP / PHP 以及 javascript 的交互, 唉,第一次写文章,真是 - phpStudy...
Flash 和 ASP / PHP 以及 javascript 的交互 唉,第一次写文章,真是很紧张,这是前几天在网上查资料和自己研究的结果,希望能对一些朋友有用.水平所限,肯定有错漏之处,烦劳高手指 ...
- 转载——Java与WCF交互(一):Java客户端调用WCF服务
最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...
- Java与WCF交互(一):Java客户端调用WCF服务
最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...
- 使用 AjaxManager 生成调用服务器端方法的 javascript 函数
通过 AjaxManager, 我们可以方便的生成调用 WebService 或者一般处理程序的 javascript 函数, 这样就可以方便的在客户端调用. 本文更新: 2011-12-12: 去掉 ...
- 淘宝客教程:如何利用JS调用淘宝商品javascript教程
[导读]大家都知道,现在最流行的是淘宝客,但一年前搜索引擎已经对淘宝客网站的API很不友好了,因为做的人太多,露得清深层净化API都是直接获取的淘宝数据,内容都是大量重复的.后来淘宝客javascri ...
最新文章
- @所有粉丝,祝大家新春快乐!
- JAVA简性_Java简介
- matlab完全自学一本通 pdf,matlab r2014a自学一本通 MATLAB R2014a完全自学一本通 中文pdf扫描版[125MB] 下载-脚本之家...
- POJ - 2318 TOYS(叉积+二分)
- CSS的三种定位,月薪30K
- 在PHP中实现中文汉字验证码
- python访问带密码的共享文件夹_设置带密码和读写权限的共享文件夹 - Hakka
- Python中zip函数
- 学习笔记:Unity战斗卡牌游戏(三)-----代码加载预设 及 Tween动画使用及播放回掉...
- JAVA获取word书签内容_Java 操作Word书签(一):添加、删除、读取书签
- Linux虚拟机挂载新的硬盘
- Swift_学习笔记_调用ObjectiveC方法
- PRD文档详解(20191209)
- jenkins构建时报错ERROR: Cannot run program “docker“ (in directory “/var/jenkins_home/workspace/
- python输出语句print(3+5)_Python 3 print 函数用法总结
- emv中的 部分匹配_EMV指标策略
- python中hub_Python中文社区名称的统一
- 孟晚舟任华为轮值董事长
- 简易电子章制作小模块(VBA)
- pyLDAvis3.3.1 报错 OSError: [Errno 22] Invalid argument: ‘https://cdn.jsdelivr.net/gh/bmabey/pyLDAvis@
热门文章
- 工作66:动态生成二维码
- 前端学习(2223):react之jsx的样式和注释(2)
- 前端学习(1509):单页应用SPA特点
- 前端学习(659):小结
- 远程桌面复制文件,由于网络或其他原因被意外中断,后来再连上远程桌面就无法复制了,而且复制文件的对话框也无法取消,可以试试下面的方法,实测有效:
- windows下python安装
- java语言中的 继承_Java语言有关继承的总结
- saltstack mysql_saltstack学习五:return及入库_MySQL
- JDK 1.5新特性
- Effective C++: 06继承与面向对象设计