使用LocalConnection数据通信

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

有时候需要在二个或者多的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对象下定义一个方法,供LocalConnection.send调用.和NetStream.send等相似.

链接.方法=function (参数) {

trace(参数);}

//调用已经定义的方法.

链接.send("连接名字","方法","输出这个参数");

//输出: 输出这个参数

下面看一个例子,页面内部传递消息:

新建一个文件大小为300*200,放一个发布按钮和二个文本框(名称分别为输入框 显示框),在时间线的第一

桢加入以下代码.

//新建一个连接对象

连接对象=new LocalConnection();

//连接到swfa 文件2连接到swfa,需要注意的是命名不能含有特殊字符,命名也不能含有数字,因为会造成工作不稳定

连接对象.connect("swfa");

//发送消息

btn.onPress= function 发送消息() {

//文件2发送消息到 连接对象.send("swfa","接收消息",输入框.text);

连接对象.send("swfb","接收消息",输入框.text);}

//接收消息

连接对象.接收消息=function (消息) { 显示框.text=显示框.text+ newline+ 消息; }

文件1:

bgcolor=#FFFFFF WIDTH="300" HEIGHT="200" NAME="send2load2" ALIGN=""

TYPE="application/x-shockwave-flash"

PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"

文件2:

bgcolor=#FFFFFF WIDTH="300" HEIGHT="200" NAME="send2load" ALIGN=""

TYPE="application/x-shockwave-flash"

PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"

最后,简单介绍一下LocalConnection其他的方法事件资料:

close([连接名字]) 关闭一个连接(最近使用的连接)

domain()方法 参数无,返回一个本地域.

.onStatus([infoObject])事件 当LocalConnection状态变化的时候,比如错误等.触发这个事件.

.allowDomain([domain])事件 当LocalConnection收到一个连接请求或者发送.或者调用方法 或者接收时候自动发生.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航