LocalConnection可以实现swf与swf之间的通信
1.同一个swf内的通信 ;
2.不同swf之间的通信 ;
3.AIR应用程序之间的通信 ;
4.AIR应用程序与网站之中的swf之间的通信 .
虽然LocalConnection,如同起名字那样,只能够在同一台电脑之内的swf文件之中进行通信,但是它能够实现不同的应用程序,如 浏览器中的swf 与 AIR中的swf 的可以进行通信。
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名
相同domain中进行通讯 在同domain中,flex默认是允许的,所以不需要其他额外的设置,就可以直接用了。您只需为 connectionName参数传递相同的值到两个connect()和send()方法
http://www.domain.com/receiving.swf
Var conn:LocalConnection;
Conn=new LocalConnection();
Conn.connection(“connectionname”);
Function methodname():void
{trace(“hello word!”);}
http://www.domain.com/sending.swf
Var conn:LocalConnection;
Conn=new LocalConnection();
Conn.send(“connctionname”,”methodname”);
有确定名的不同domain 当不同domain进行通讯时,你需要允许不同domain之间的通信,方式是调用allowDomain()这个方法。并且在接收文件的LocalConnection对象send()方法中加入connectionname
http://www.domain.com/receiving.swf
Var conn:LocalConnection;
Conn=new LocalConnection();
Conn.allowDomain(“www.otherdomain.com”);
Conn.connection(“connectionname”);
Function methodname():void
{trace(“hello word!”);}
http:// www.otherdomain.com /sending.swf
Var conn:LocalConnection;
Conn=new LocalConnection();
Conn.send(“domain.com : connctionname”,”methodname”);
未知domain名的不同domain Connectionname需要添加下划线(_),允许域名改为*
http://www.domain.com/receiving.swf
Var conn:LocalConnection;
Conn=new LocalConnection();
Conn.allowDomain(“*”);
Conn.connection(“_connectionname”);
Function methodname():void
{trace(“hello word!”);}
http:// www.unknown.com /sending.swf
Var conn:LocalConnection;
Conn=new LocalConnection();
Conn.send(“_ connctionname”,”methodname”);