当前位置: 首页 > news >正文

flex 与 javascript互调用

一、在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 ο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>

相关文章:

  • vue2的keep-alive的总结
  • 一款轻量的图像缩放插件
  • class与dex文件
  • 嵌入式Linux:基于ARM11下Android应用点亮LED灯 【PDF版论文下载】
  • 11.24 静态元素过期时间
  • AWS的登录认证。。。
  • 05 Objective C数组的四种遍历方法总结
  • 关于Ubuntu12.04笔记本触摸板的无法使用的问题
  • form表单提交后不刷新不跳转
  • 五险一金
  • springboot web应用 jar 启动 ant脚本
  • 中国移动与苹果联姻 三星在华霸主地位或遭取代
  • 微信公众号支付PHP-SDK的一个BUG
  • 一致性hash的C++实现
  • Swift枚举相关值
  • 11111111
  • Codepen 每日精选(2018-3-25)
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • laravel5.5 视图共享数据
  • Mac转Windows的拯救指南
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • python大佬养成计划----difflib模块
  • Sublime Text 2/3 绑定Eclipse快捷键
  • sublime配置文件
  • 闭包--闭包之tab栏切换(四)
  • 回顾 Swift 多平台移植进度 #2
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 一个JAVA程序员成长之路分享
  • 中文输入法与React文本输入框的问题与解决方案
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • #NOIP 2014#Day.2 T3 解方程
  • (02)vite环境变量配置
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)ObjectiveC 深浅拷贝学习
  • **CI中自动类加载的用法总结
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .Net接口调试与案例
  • ::before和::after 常见的用法
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @Controller和@RestController的区别?
  • [ C++ ] STL---stack与queue
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [] 与 [[]], -gt 与 > 的比较
  • [2010-8-30]