js调用Flex中的方法并向flex中传参及flex调用js示例

2023-12-05 0 289

首先,有了一个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\”]

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Flex js调用Flex中的方法并向flex中传参及flex调用js示例 https://www.u-9.cn/biancheng/flex/96600.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务