Flex3与页面JavaScript的相互调用
来源:互联网 发布:现代流行网络歌曲简谱 编辑:程序博客网 时间:2024/05/05 17:03
日前做项目,需要把页面的JS代码抽出来放到一个.js文件中,由于flex程序是以div+SWFObject的方式嵌入到页面的,为了达到目标网站只需要引用一个.js文件即实现引用项目工程的目的,所以也要把SWFObject的代码放到.js文件中。
思路是用document.write()把引用swf文件的代码写进页面,然后把flex要调用的js函数都放到.js文件中
很快,就迁移完毕了。测试ing...
想不到的是,flex中用ExternalInterface.call("methodName",params);调JS函数缺没有返回值,用alert("a")弹出一下,果然没有调用到。这是为什么呢?难道把SWF用document.write的方式加入到页面后权限降低了?
放狗找了一下,似乎大家的调用都很正常……唉……人生最痛苦的事情莫过于此了。
突然想到infoq的一些连接显示的是类似javascript:void(0)的字样,于是乎,我想到了用flex的URLRequest调用页面的JS。
立刻尝试
flex中:
在JS中:
浏览器弹出对话框,里面的文字显示也正常。
这说明用URLRequest调用是没问题的。
但是……浏览器却跳转了,页面显示world。
很明显,不可以单纯地这么调。
怎么办呢?翻了一下flex的文档,原来ExternalInterface有个addCallBack的方法,使用它可以建一个JS的回调函数
使用方法如下:
ExternalInterface.addCallBack("returnValue",returnValue);//第一个参数是开放给JS的函数名,第二个参数是对应的AS方法。
flex中:
js中:
thisMovie()是根据swfobject的id获取flex程序实例;
sendToActionScript()代替的是js中的return语句。
分别在IE6、IE8、Chrome、Firefox下测试,通过。
- Flex3与页面JavaScript的相互调用
- (转)C#与JavaScript的相互调用
- C#与JAVASCRIPT函数的相互调用
- JavaScript与C#间的相互调用
- Javascript与C#函数的相互调用
- C#与JavaScript函数的相互调用
- C#与JAVASCRIPT函数的相互调用
- C#与JAVASCRIPT函数的相互调用
- Applet 与 javascript 的相互调用
- C# winform与Javascript的相互调用
- C# winform与Javascript的相互调用
- C# winform与Javascript的相互调用
- flex 与javascript的相互调用
- Android与JavaScript的相互调用
- C# winform与Javascript的相互调用
- C# winform与Javascript的相互调用
- Android与JavaScript之间的相互调用
- JavaScript与OC的相互调用
- MyEclipse 8.5 安装目录有空格时如何汉化
- 什么是冒烟测试?
- log4j配置信息详解
- to be top。。。
- 博客开通 从小菜的点滴开始吧
- Flex3与页面JavaScript的相互调用
- 进程相关的数据结构
- 正则表达式转自http://www.javaeye.com/topic/30728
- js使用107个技巧
- Jquery最简单的使用举例
- js调用服务端代码
- 好耐都无呢种感动
- WPF: 一个可以用StoryBoard动态改变Grid行宽/列高的类
- LTP介绍