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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/417703.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

05_HttpClient_模拟登陆

[留个沙发]转载于:https://www.cnblogs.com/HigginCui/p/6118729.html

zval php,PHP内核之zval

这篇文章主要介绍的内容是关于PHP内核之zval&#xff0c;有着一定的参考价值&#xff0c;现在分享给大家&#xff0c;有需要的朋友可以参考一下

前端学习(2173):动态路由的跳转

app.vue <template><div id"app"><router-link to"/home">首页</router-link><router-link to"/about">关于</router-link><router-link v-bind:to"/user/userId">用户</router-link&g…

flex上传文件代码

带页面返回值处理的<s:Application xmlns:fx"http://ns.adobe.com/mxml/2009" xmlns:s"library://ns.adobe.com/flex/spark" xmlns:mx"library://ns.adobe.com/flex/mx" creationComplete"init()" xmlns:local"*…

前端测试框架 jasmine 的使用

最近的项目在使用AngulaJs,对JS代码的测试问题就摆在了面前。通过对比我们选择了 Karma jasmine ,使用 Jasmine做单元测试 &#xff0c;Karma 自动化完成&#xff0c;当然了如果使用 Karma jasmine 前提是必须安装 Nodejs。 安装好 Nodejs &#xff0c;使用 npm 安装好必要…

windows执行oracle脚本,Windows下通过计划任务执行数据库备份脚本

Windows 下通过计划任务执行数据库备份脚本在Linux下可以通过crontab来设置定时执行数据库的备份脚本&#xff0c;同样Windows 下可以通过设定任务计划程序来设定要执行的自动备份脚本。具体的设定过程不再详述&#xff0c;下面分别为Oracle和MySQL的备份脚本&#xff1a;1.Win…

js调用WebService(复杂对象传入)[原创]

原创地址&#xff1a;http://longtianyu1.blog.163.com/blog/static/998196520111019315663/ 实现原理&#xff0c;通过POST SOAP 1.2协议内容&#xff0c;实现复杂对象的传入 POST /Main.asmx HTTP/1.1Host: localhostContent-Type: application/soapxml; charsetutf-8Content…

C#操作 MongoDB【原创】

MongoDB下载地址&#xff1a;http://www.mongodb.org/downloads Mongo C# Driver驱动下载地址&#xff1a; https://github.com/mongodb/mongo-csharp-driver MongoDB所有语言的驱动列表 LanguagePackagesSourceAPI ReferenceCsource tarballsGitHubAPIC#packagesGitHubAPICso…

React 相关资料

learncodeacademy/react-js-tutorialsMobX 转载于:https://www.cnblogs.com/skating/p/6125178.html

在线安装php,CentOS在线安装PHP|dayblog-天天博客|PHP交流,PHP技术,PHP博客,博客交流,dayblog,blog,天天博客...

1、先安装一些其他依赖yum -y install libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs …

Map-Reduce的逻辑过程

假设我们需要处理一批有关天气的数据&#xff0c;其格式如下&#xff1a; 按照ASCII码存储&#xff0c;每行一条记录 每一行字符从0开始计数&#xff0c;第15个到第18个字符为年 第25个到第29个字符为温度&#xff0c;其中第25位是符号/-00670119909999919500515070000 0043011…

(HDU)1019 --Least Common Multiple(最小公倍数)

描述 一组正整数的最小公倍数&#xff08;LCM&#xff09;是可以被集合中所有数字整除的最小正整数。 例如&#xff0c;5,7和15的LCM为105。输入 输入将包含多个问题实例。 输入的第一行将包含指明问题实例数量的单个整数。 每个实例将由形式为m n1 n2 n3 ... nm的单行组成&…

如何将exe文件在linux下执行,如何在Linux系统下查找可执行文件

可执行文件是指可移植可执行的文件&#xff0c;用于程序的执行&#xff0c;那么Linux下要如何查找可执行文件呢&#xff1f;下面小编就给大家介绍下Linux中查找可执行文件的方法&#xff0c;一起来了解下吧。linux下查找可执行文件ls -F|grep “*”这样就可以了&#xff01;ls …

前端学习(2176):vue-router的路由的嵌套使用

app.vue <template><div id"app"><router-link to"/home">首页</router-link><router-link to"/about">关于</router-link><router-link v-bind:to"/user/userId">用户</router-link&g…

下拉列表项过多会导致浏览器卡死

下拉列表项过多会导致浏览器卡死。 可以采用异步的加载方式&#xff0c;类似手机新闻的推送&#xff0c;定制下拉列表组件&#xff0c;一屏一屏的加载数据到浏览器端。

linux服务器做301跳转,nginx 实现当找不到文件时实现301跳转

server {server_name test.com;rewrite ^/(.*) http://www.test1.com/$1 permanent;}last – 基本上都用这个Flag。break – 中止Rewirte&#xff0c;不在继续匹配redirect – 返回临时重定向的HTTP状态302permanent – 返回永久重定向的HTTP状态301Nginx的重定向用到了Nginx的…

前端学习(2177):vue-router得参数传递

app.vue <template><div id"app"><router-link to"/home">首页</router-link><router-link to"/about">关于</router-link><router-link v-bind:to"/user/userId">用户</router-link&g…

如何进行正确的SQL性能优化

在SQL查询中&#xff0c;为了提高查询的效率&#xff0c;我们常常采取一些措施对查询语句进行SQL性能优化。本文我们总结了一些优化措施&#xff0c;接下来我们就一一介绍。 1.查询的模糊匹配 尽量避免在一个复杂查询里面使用 LIKE %parm1%—— 红色标识位置的百分号会导致相关…