手机
当前位置:查字典教程网 >编程开发 >Flex >js调用Flex中的方法并向flex中传参及flex调用js示例
js调用Flex中的方法并向flex中传参及flex调用js示例
摘要:首先,有了一个swf文件,test.swf,同时也有一个自动生成的html文件,test.html。然后,在另外一个文件,test.jsp中...

首先,有了一个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示例】相关文章:

flex tomcat端口被占用的问题分析及解决方法

Flex设置LinkButton的背景色有思路有源码

Flex读取txt文件中的内容报错原因分析及解决

Flex中TabNavigator设置Tabs样式思路及源码

Flex中实现对一个text渲染不同的字体颜色示例

Flex 关于字体的应用示例介绍

flex中validateall()方法实现多Item验证且结果统一提示

Flex中TitleWindow传值思路及实现

Flex iframe 向jsp中传参示例

datagrid不可编辑行有关问题的控制方法

精品推荐
分类导航