flex与js相互调用
1.flex调用js方法
调用方法例如:ExternalInterface.call("UploadComplete",oldName,uidName,_dir+"/"+uidName+type);
第一个是js方法名,后面几个是给这个js方法传的参数。这个方法必须在网页的js中注册,否则会调用失败。
需要注意的是调用之前需要检查网页的js是否已完成加载,用ExternalInterface.available可是判断。
注:这种调用方法是可以有返回值的,例如:var m:String = ExternalInterface.call(f,"New Title");
但是这个返回值不能有时延(例如js需要进行ajax操作),否则m=null。因为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>
2.js调用flex方法
js要调用flex方法,首先在flex中必须注册,将as方法注册为js可调用的方法。例如:ExternalInterface.addCallback("ConfirmGroup",ConfirmGroup);
第一个是js中调用时用的名称,第二个是as中定义的方法。
在ie浏览器中调用方法为: document.getElementById("mapContent").ConfirmGroup(1);
mapContent为flash的id。
注:它也是可以有返回值的。
示例:
AS:
<mx:Script>
import flash.external.*;
public function myFunc():Number {
return 42;
}
public function initApp():void {
ExternalInterface.addCallback("myFlexFunction",myFunc);
}
</mx:Script>
JS:
<SCRIPT language='JavaScript' charset='utf-8'>
function callApp() {
var x = MyFlexApp.myFlexFunction();
alert(x);
}
</SCRIPT>
<button onclick="callApp()">Call App</button>
转:http://www.cnblogs.com/tiandi/archive/2012/06/03/2532977.html
flex与js相互调用的更多相关文章
- 关于action script与js相互调用的Security Error问题
大家都知道,as和js相互调用可以通过ExternalInterface.call和ExternalInterface.addCallback来进行. 比较好的做法是使用之前通过ExternalInt ...
- Flex父子窗口相互调用
Flex父子窗口相互调用 1.设计思路 (1)子窗口调用父窗口的方法 (2)子窗口做了修改后,返回父窗口,父窗口调用子窗口函数 2.设计源码 (1)父窗口 ParentWindow.mxml: < ...
- Flex父子窗体相互调用
Flex父子窗体相互调用 1.设计思路 (1)子窗体调用父窗体的方法 (2)子窗体做了改动后,返回父窗体,父窗体调用子窗体函数 2.设计源代码 (1)父窗体 ParentWindow.mxml: &l ...
- CefSharp 与 js 相互调用及注意事项
CefSharp 与 js 相互调用 一. CefSharp调用 js CefSharp.WinForms.ChromiumWebBrowser wb; ... 方式1. ExecuteScriptA ...
- WebBrowser(IE) 与 JS 相互调用
在开发中我们经常将WebBrowser控件嵌入Winform 程序来浏览网页,既然是网页那么少不了JS.下面就让我们来说说他们两之间的相互调用. 在C#封装的浏览器内核中,Chromium 内核封装有 ...
- WebView使用详解(一)——Native与JS相互调用(附JadX反编译)
念念不忘,必有回响,永远坚持你所坚持的! 一直在用WebView,还没有系统的总结过它的用法,下面就系统的总结下,分享给大家 一.基本用法 1.加载在线URL void loadUrl(String ...
- Android js相互调用
一.webview相当于android中的浏览器,基于webkit开发,可以浏览网页文件,支持css javas cript 以及html webview.getSettings().setJavaS ...
- 【转】CefSharp 与 js 相互调用
转自CSDN博客博主ghui,虽然博主说要经过他同意才能转,我只是做笔记用,没做他用,所以请博主理解,在此感谢博主! 一. CefSharp调用 js CefSharp.WinForms.Chromi ...
- CefSharp 与 js 相互调用
https://blog.csdn.net/gong_hui2000/article/details/48155547
随机推荐
- ASP.NET的Application简介1
ASP.NET中的Application 1. Application是用于保存所有用户共有的信息.在ASP时代,如果要保存的数据在应用程序生存期内不会或者很少改变,那么使用Application是理 ...
- java集合使用——HashMap
在map中插入.删除和定位元素时,HashMap是最好的选择.如果要按照自然顺序或自定义顺序遍历(获取所有元素),那么treemap更好一些. 第一:构造和添加元素 HashMap map = new ...
- (转)Eclipse Shortcuts
原文地址: http://javapapers.com/core-java/eclipse-shortcuts/ Editors are an integral part of a programme ...
- 显示查询记录的前n条 mysql limit用法
按时间倒序出所有的数据 mysql order by createtime desc ; +----+------------------+ | id | id_no | +----+-------- ...
- [转]mac下Python升级到指定的版本
以2.7升级到3.3为例1.删除原版本a)删除系统库中的版本sudo rm -R /System/Library/Frameworks/Python.framework/Versions/2.7 b) ...
- 15个顶级Java多线程面试题及回答
Java 线程面试问题 在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分.如果你想获得任何股票投资银行的前台资讯职位,那么你应该准备很多关于多线程 的问题.在投资银行业务中多线程和并发 ...
- Super Jumping! Jumping! Jumping!(hdu 1087 LIS变形)
Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...
- sqlserver系统表操作
查询表名中包含‘user’的方法Select * From sysobjects Where name like '%user%' 如果知道列名,想查找包含有该列的表名,可加上系统表syscolumn ...
- T-SQL 语法元素
一.标识符 在T-SQL语言中,对SQLServer数据库及其数据对象(比如表.索引.视图.存储过程.触发器等)需要以名称来进行命名并加以区分,这些名称就称为标识符. 通常情况下,SQLServer数 ...
- C# 集合详解 (适合新手)
System.Collections 命名空间包含接口和类,这些接口和类定义各种对象(如列表.队列.位数组.哈希表和字典)的集合.System.Collections.Generic 命名空间包含定义 ...