js调用Flex中的方法,向flex中传参,flex调用js
来源:互联网 发布:php按钮颜色代码 编辑:程序博客网 时间:2024/05/17 20:10
首先,有了一个swf文件,test.swf,同时也有一个自动生成的html文件,test.html。
然后,在另外一个文件,test.jsp中,通过iframe,引入了test.html,即引入了swf。
现在想要在test.jsp中,向flex传参,并调用flex中的方法,我采用的方法是:
首先,在jsp中写一个调用flex的方法,如下
function initSWF(){
//得到swf的object
var obj = window.frames["rightframe"].ReverseQuery; //rightframe是iframe的名字,ReverseQuery是在test.html中,引入swf做object的id。
//调用它的方法
var start = "<%=startPoint%>";
var end = "<%=endPoint%>";
obj.showParams(start,end);
}
在html中,有方法
/*在flex中只能调用本页面的js方法*/
function initSWF(){
parent.initSWF();
}
在flex,有如下方法:
public function showParams(start:String,end:String):void{
Alert.show(start);
Alert.show(end);
}
这时,需要建立一个打开他们之间通信的桥梁了,在flex的初始化时,要使用
ExternalInterface.addCallback("showParams",showParams); //前者是它暴露给js的方法名,后者是它在flex中的方法名。
这样,理论上就可以实现调用了。将initSWF方法放在页面的onload方法中即可实现。
但是产生一个问题,如果flex在页面中没有加载成功时,会报找不到对象的错误。因此,需要我们在确保swf文件加载完成后,再调用swf中的方法。
但监听它加载完成显然有点浪费感情,于是,我们采用的策略是,等它加载完,再调用js的initSWF方法,即可将环节全部打通。
因此,在flex的初始化时,加入
//调用载入页面的initSWF方法
ExternalInterface.call("initSWF"); //要将它放在注册对外方法之后进行。
大功告成。
有需要注意的地方:
在flex当中调用js的方法,这个方法只能写在引入swf的文件中,但我在jsp中引入了html,所以只能是在html中的js,是调用父页面的js方法。
而在jsp中对于swf文件的引用,要借助window.frames["rightframe"]
- js调用Flex中的方法,向flex中传参,flex调用js
- js调用Flex中的方法,向flex中传参,flex调用js
- FLEX调用JS
- js调用flex
- flex调用js
- 参考,flex调用js
- Flex学习之(JS中调用Flex的方法)
- Flex通过i调用iframe中的js
- js调用flex中as方法
- Flex调用js方法传递参数
- flex开发 as调用js
- FLEX JS 互相调用,访问~
- Flex和js相互调用
- js调用flex的属性
- Flex和js相互调用
- flex与JS互相调用
- js调用flex的代码
- Flex与JS相互调用
- Oracle bbed 五个 实用示例
- store分页中PagingToolbar出现显示页面数异常的解决
- Android应用屏幕适配
- Android ilbc 语音对话示范(一)开篇
- hql中select new map的使用
- js调用Flex中的方法,向flex中传参,flex调用js
- 有用的微机原理2013/4/17(二)
- Zenf Framework Tool
- CSDN的改版体验真差
- BBED找回删除数据的一个简单例子
- boost asio 异步实现tcp通讯
- iphone ios 如何使用gcd
- CAS3.x中http认证方式
- poj 3630