注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Flex 技术博客

醉里挑灯看剑,梦回吹角连营

 
 
 

日志

 
 

利用LocalConnection实现多个应用之间的通讯  

2007-12-29 12:42:55|  分类: Flex 应用 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

当我们需要在两个不同的Flex Application之间进行一些数据交换时,有什么办法进行通讯呢,flash本身就提供了一套API(LocalConnection)。这里我们简单讲讲如何使用LocalConnection进行两个应用之间数据交互。

首先看看LocalConnection对象有哪些主要的method:

addEventListener() : 通常建立一个对status的Listener,随时观察connection的状态

allDomain() :允许不同domain之间的应用进行通讯, 这个跟安全有关,默认是不允许的

allowInsecureDomain() :同allDomain,但是它需要的安全性低一些,允许非Https的

close() :关闭连接

connect(connectionName:String) :建立连接,并指定连接名

send(connectionName:String, methodName:String,...rest):发送数据,目的地为connectionName,调用的是该App的methodName

下面直接看例子代码:

//LocalApp_Send.mxml    - 主应用程序,消息发起程序

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="init()">

    <mx:Script>

        private var myConnection:LocalConnection;       

        private function init() :void{

            myConnection = new LocalConnection();

            myConnection.addEventListener(StatusEvent.STATUS, onStatus);

        } 

        private function sendMessage() : void{

            //call the receive app's method 'callFunc' to send the text

            myConnection.send("receivingapp", "callFunc", myMessage.text);

        } 

        private function onStatus(result:StatusEvent) :void{

            status.text=result.level == "error"?"Operation failed":"Operation succeeded";

        } 

    </mx:Script> 

    <mx:TextInput id="myMessage" />

    <mx:Button click="sendMessage()" label="Send"/>

    <mx:Label id="status"/>

</mx:Application>

//LocalApp_Receive.mxml - 消息接收程序

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="init()">

    <mx:Script>

        private var myConnection : LocalConnection;

        private function init() :void{

            myConnection = new LocalConnection();

            myConnection.client=this;//specify this app as LocalConnection's callback object

            myConnection.connect("receivingapp");

        } 

        public function callFunc(message:String=""):void {

            messageList.text+=message+"\n";

        }

    </mx:Script>

    <mx:TextArea id="messageList" width="300" height="300"/>

</mx:Application>

 其中

App_Send

myConnection.addEventListener(StatusEvent.STATUS, onStatus);

     建立连接的状态Listener

myConnection.send("receivingapp", "callFunc", myMessage.text);

     发送消息内容myMessage.text到receivingapp中,调用的函数名为callFunc

App_Receive

myConnection.client=this;//specify this app as LocalConnection's callback object

myConnection.connect("receivingapp");

    指定myConnection的client为当前应用,并以receivingapp的名字建立连接

 源码下载

在线演示(打开两个应用窗口)

发送消息App |  接受消息App

 
  评论这张
 
阅读(694)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017