主题:  ■■■多个独立的SWF文件之间的通信■■■

Mozier

职务:管理员
等级:5
金币:11.0
发贴:2994
#12003/7/28 11:29:59
FlashMX新增的LocalConnection对象能够使客户端机器上当前打开的独立的SWF之间互相通信,不需要FSCommand 或 javascript。
我们来做个简单的例子,这个例子要实现的是在两个独立的SWF之间,一个SWF去控制另一个SWF跳转到第二帧。首先要更新你的FlashMX帮助文档,
因为关于这个对象的说明文档在后来的Flash MX Documentation Updater
里头.更新文档是英文,如果你用的是中文版的FlashMX,更新前请做好备份。
[注:加粗部分你可以不管,如果你不想学习新东西的话]
更新文档官方下载:
www.macromedia.com/support/flash/documentation/flmx_documentation_updater
更新文档本地下载:
vip.5d.cn/mozi/software/flashmx_doc_updater_en.exe
一切就绪,开始:
第一步:新建Movie保存并命名为send_movie
在send_movie内做一按钮,命名为btn,场景第一帧AS:
_root.btn.onRelease = function () {
      var lc = new LocalConnection ();//新建LocalConnection对象
      lc.send ("comein", "Comein", "2");
//"comein"为receive_movie.swf中lc的连接名,"Comein"传递给 receive_movie.swf的函数名,"2"要传递的参数
}

保存,再Ctrl+Enter,咦?没效果......
OK~ 再来第二步:
新建Movie保存并命名为receive_movie
在场景内第一层插入两个空关键帧,分别在两个关键帧内放点东东,至于放什么那就随你了,只要能够方便的区分两个关键帧。
然后在第二层第一帧写AS:
var lc = new LocalConnection ();
lc.Comein = function (num) {
_root.gotoAndStop (num);
};
lc.connect ("comein");//连接到send_movie.swf
stop ();

保存,再Ctrl+Enter,咦?还是没效果......
嘿嘿,这样是看不到效果的啦.
分别打开send_movie.swf和receive_movie.swf,在send_movie.swf里点击按钮,看看
receive_movie.swf里发生了什么,是不是跳转到第二帧了啊?呵呵,就这么简单......
这只是LocalConnection对象的简单应用,不知大家有什么启发去做出更复杂,更有趣的东东?
原文件下载:

相关文件:点这儿打开

编辑历史:[这消息被麽子编辑过(编辑时间2003-07-28 11:35:32)]


消遣

职务:普通成员
等级:1
金币:5.0
发贴:187
#22003/7/29 7:42:46
好东西,好像有人正在为这事犯愁



a1ds

职务:普通成员
等级:1
金币:0.0
发贴:169
#32003/7/30 11:45:19
的确不错!支持一下!



大彩蛋

职务:普通成员
等级:1
金币:1.0
发贴:142
#42003/7/31 17:20:20
如果两个SWF都在网页上,用它有方法可以通信吗?



Mozier

职务:管理员
等级:5
金币:11.0
发贴:2994
#52003/8/1 9:06:51
有了LocalConnection对象,就不需要FSCommand 或 javascript作媒介了~


编辑历史:[这消息被麽子编辑过(编辑时间2003-08-01 09:10:06)]
[这消息被麽子编辑过(编辑时间2003-08-16 18:44:03)]