LocalConnection实现swf与swf之间通信

本文详细介绍Flash中的LocalConnection机制,该机制使SWF文件之间能够跨应用程序进行通信,包括同一台电脑上的SWF文件、不同域名间的SWF文件及AIR应用程序等。文章提供了不同场景下的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LocalConnection可以实现swf与swf之间的通信:
1.同一个swf内的通信
2.不同swf之间的通信
3.AIR应用程序之间的通信
4.AIR应用程序与网站之中的swf之间的通信

虽然LocalConnection,如同起名字那样[color=red],只能够在同一天电脑之内的swf文件之中进行通信,但是他能够实现不同的应用程序,如 浏览器中的swf 与 AIR中的swf 的可以进行通信[/color]。

LocalConnection通信可以在1.0,2.0与3.0的之间通信,或者3.0与1.0,2.0之间的通信都是畅通的

为了更深的理解LocalConnection,就要清晰的理解各个通讯文件的功能和命令。通讯需要两个文件,一个是发送文件,包含要被触发的方法A ,另外还有包含一个LocalConnection对象和触发send()。另一是接收的文件,用于触发那个方法A,另外还有包含一个LocalConnection对象和触发connect()。

根据域的不同,Send()与connect()也是不同的,有一些几种情况:
1、 相同domain中进行通讯
2、 不同的domain,有确切的domian名
3、 不同的domain, 有未知的domain名或者动态的domain名

[size=large]相同domain中进行通讯[/size]
在同domain中,flex默认是允许的,所以不需要其他额外的设置,就可以直接用了。您只需为 connectionName参数传递相同的值到两个connect()和send()方法

http://www.domain.com/receiving.swf
Var conn:LocalConnection;
Conn=new LocalConnection();
Conn.connection([color=orange]“connectionname”[/color]);

Function methodname():void {trace(“hello word!”);}

http://www.domain.com/sending.swf
Var conn:LocalConnection;
Conn=new LocalConnection();
Conn.send(“[color=orange]connctionname[/color]”,”methodname”);

[size=large]有确定名的不同domain[/size]
当不同domain进行通讯时,你需要允许不同domain之间的通信,方式是调用allowDomain()这个方法。并且在接收文件的LocalConnection对象send()方法中加入connectionname


http://www.domain.com/receiving.swf
Var conn:LocalConnection;
Conn=new LocalConnection();
[color=red] Conn.allowDomain(“www.otherdomain.com”);[/color]
Conn.connection(“connectionname”);

Function methodname():void {trace(“hello word!”);}

http:// www.otherdomain.com /sending.swf
Var conn:LocalConnection;
Conn=new LocalConnection();
Conn.send([color=red]“domain.com : connctionname”[/color],”methodname”);

[size=large]未知domain名的不同domain[/size]
Connectionname需要[color=red]添加下划线(_),[/color]允许域名改为*
http://www.domain.com/receiving.swf
Var conn:LocalConnection;
Conn=new LocalConnection();
[color=red] Conn.allowDomain(“*”);[/color]
Conn.connection([color=red]“_connectionname”[/color]);

Function methodname():void {trace(“hello word!”);}

http:// www.unknown.com /sending.swf
Var conn:LocalConnection;
Conn=new LocalConnection();
Conn.send(“[color=red]_ connctionname[/color]”,”methodname”);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值