LocalConnection实现swf与swf之间通信

 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”);

posted @ 2013-02-01 16:54  小糊涂仙儿  阅读(185)  评论(0编辑  收藏  举报