主题:  使用LocalConnection进行数据通信

零点飞越

职务:普通成员
等级:1
金币:0.0
发贴:100
#12003/8/10 20:10:20
有时候需要在二个或者多的swf文件之间进行数据交换,比如你可能需要当用户点击
导航栏的每个链接之后,相应的主体swf显示相关内容,而这时,这二个相关的不是
在同一个swf文件中,这时候 需要使用LocalConnection.
LocalConnection 可以在flash6 中使用,当安装过flashcom之,LocalConnection
出现在动作面板的Communication ↓LocalConnection.LocalConnection的标识名称是_lc如下图所示:

但是使用LocalConnection ,并不一定需要flashcom,它可以单独使用,或者和flashcom 等一起使

用.LocalConnection有一个构造器和四个方法,二个事件.
先来看一个绝对是本地连接的代码.
//要想使用LocalConnection连接对象,必须有一个LocalConnection对象.
var 链接=new LocalConnection();
//loadvars xml XMLSocket等通常连接一个网域(uri),本地连接比较简单,使用任意名字.仅是一个标识.
链接.connect("连接名字");
//在LocalConnection对象下定义一个方法,供[i]LocalConnection.send[/i]调用.和NetStream.send等相似.
链接.方法=function  (参数) {
	trace(参数);
}
//调用已经定义的方法.
链接.send("连接名字","方法","输出这个参数");
//输出: 输出这个参数


下面看一个例子,页面内部传递消息:
新建一个文件大小为300*200,放一个发布按钮和二个文本框(名称分别为输入框 显示框 发送按钮.),在时间线

的第一
桢加入以下代码.
//新建一个连接对象
连接对象=new LocalConnection();
//连接到swf1 文件2连接到swf2
连接对象.connect("swf1");
//发送消息
function  发送消息() {
        //文件2发送消息到连接对象.send("swf2","接收消息",输入框.text);
	连接对象.send("swf2","接收消息",输入框.text);
        输入框.text="";
}
//接收消息
连接对象.接收消息=function  (消息) {
	显示框.text=显示框.text+ newline+ 消息;
	
}
发送按钮.onPress = function() {
	发送消息();
}


文件1:


文件2


最后,简单介绍一下LocalConnection其他的方法事件资料:
close([连接名字]) 关闭一个连接(最近使用的连接)
domain()方法 参数无,返回一个本地域.
.onStatus([infoObject])事件 当LocalConnection状态变化的时候,比如错误等.触发这个事件.
.allowDomain([domain])事件 当LocalConnection收到一个连接请求或者发送.或者调用方法 或者接收时候自

动发生.

下载源文件:LocalConnection.rar

 下载

在线演示http://go.6to23.com/chujinhui/LocalConnection/index.html