`

LocalConnection实现swf与swf之间通信

    博客分类:
  • FLEX
阅读更多
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”);
1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics