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

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

更新时间:2013年07月09日 17:43:50   作者:

本文为大家详细介绍喜爱js调用Flex中的方法以及向flex中传参与flex调用js,具体示例如下,感兴趣的朋友不妨参考下,希望对大家有所帮助

首先,有了一个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 = "";

var end = "";

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"]

相关文章

1a1b05c64693fbf380aa1344a7812747.png

如何在Renderer中设置属性 Renderer中设置属性的方法实例,需要的朋友可以参考一下2013-06-06

4f55910a645b073bc4fc65dc10dc14bd.png

Flex Realspace产品在sp3时上线,急需制作帮助文档,由于在开发的时候没有考虑后期的帮助文档,查了很多资料,希望通过ASDoc达成愿望,感兴趣的朋友可以了解下,或许对你有所帮助2013-02-02

0ea3c7666119d5615e582f823fb3fad6.png

flex中的RadioButtonGroup想必大家并不陌生吧,在本文将为大家介绍下在使用RadioButtonGroup时如何取出所选项的值,感兴趣的朋友可以参考下2013-12-12

4f96a78db829b1556ff16de21e013c7a.png

这篇文章主要介绍了Flex DataGrid如何自动编号,感兴趣的朋友可以参考下2014-05-05

8cc1031babc6aff2319f1c6af8544aa0.png

当点击datagrid的第一和第四项时,itemEdit事件将不起作用,许多事件都有默认执行的关联行为,接下来为大家详细介绍下,感兴趣的朋友可以参考下哈2013-04-04

0c932a99bb7b6f23c937db507070cc7b.png

回调函数就是一个通过函数指针调用的函数,回调函数不是由该函数的实现方法直接调用,而是在特定的事件或条件发生时由另一个方法调用的,用于对该事件或条件进行相应2013-09-09

cca732bf65a93ed2ec0ac80c638460fe.png

我们需要这样的一个效果:点击链接打开一个网页。下面为大家介绍下Flex中如何给一个按钮添加链接实现点击打开网页,感兴趣的朋友可以参考下2013-12-12

2d9f31f2af7b675a3d153d2b7f1035a7.png

Label控件竖排显示文字一般都是横排的,接下来为大家分享个方法让它变成竖排,感兴趣的童鞋们可以学习下,希望对你有所帮助2013-04-04

b452cee8ec5cd9e58ab98eba17281e59.png

ArrayCollection添加过滤器后,调用removeItemAt()是无法删除的,下面有个不错的解决方法,大家可以参考下2014-06-06

f4838ec7e2d4da28e0b57d4e852dadd4.png

本节主要介绍了Flex4 DataGrid中嵌入RadioButton实现思路及代码,需要的朋友可以参考下2014-07-07

最新评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值