这个教程进行了Flash Communication Server MX中的Shared Object的探讨。(部分教程原型改编自Flash Com帮助文档)。
我们利用Flash Com进行共享信息的第一步就是共享文字信息。多个浏览者可以同时浏览同一组信息甚至是同时编辑同一组信息。一个浏览者修改过一个Shared Object(以下简称SO)的同时,其他浏览者将会看到SO的变化。
这个教程必须的工具:
- Macromedia Flash Communication Server MX
- Macromedia Flash MX
下面我们来一起探讨一下SO的概念和初步的处理方式:
- 我们最早拿到Flash MX的时候,一个新功能就是Flash MX能够操作Local Object,最常见的就是在一个Flash swf文件上进行鼠标右键的点击,进而操作settings...进入一个设定界面,如下图:
这个界面中点击文件夹图标就是对Local Object的存储空间进行控制。同样,FlashCom在推出之后,增加了一个SO的概念。这个SO目的就是让多数浏览者在同时浏览一个swf的时候能够共享信息。这些信息包括图像、视频、音频、MovieClip和文字。有了SO,才能够基于FlashCom开发出共享信息的视频会议、电子白板、在线聊天室等多种应用。
- 举个最简单的例子,Local Object就是你一个人躲在家里吃一个大苹果,外面的人不知道你怎么吃的,吃了多少;而SO就好比你和家人分享整个大苹果,每一个人在上面吃掉一口,都会让其他人清楚的看到苹果的变化,这时整个苹果的意义就是SO的意义。只不过FlashCom中的SO不会被吃光罢了 :) 。
- 我们现在来看一下SO的工作流程图:
(该图来源于FlashCom文档)
- 下面我们来详细的讲解一下上面流程图中的SharedObject的工作流程。我们每次在Client端的FlashMX中编写SharedObject的程序时,都要有这行代码:
SharedObjectName_so=SharedObject.getRemote("newSharedObjectName",NetConnection.uri,false); 上面这行程序就是生成了一个具有Share属性的Object,能够让每个请求这个Swf文件的浏览者得到关于这个SharedObject的名称和属性,并且能够对其操作。接下来,是让这个SO(SharedObject)能够在应用中生效。记得站长说过么,没有NetConnection,你什么都别做,也什么都别想做。这里先声明的这个SharedObject就必须使用Connect方法连接上先前你创建的那个NetConnection对象。接下来就需要: SharedObjectName_so.Connect(NetConnetionObject); SO连接成功后,浏览者就都可以对这个SO进行操作了。就像两个人塔积木,你可以放上去一块积木让外形产生变化,同样,另外一个也可以这样做,而且,你们俩做的动作,对方都清楚,积木的外形对于两个人而言,也公开。
- 可是程序是严谨的,你对SharedObject所做的操作,必须能够具有同步的效应。所以,我们要考虑在SharedObject的OnSync事件(Events)进行共享信息的同步更新。之后,FlashCom会把在OnSync事件范围内的所有操作共享,就像上图中的obj1.data.x=4一样,每个人都在FlashCom捕获到OnSync发生变化时,要求FlashCom发送更新的数据给他们。这样,所有需要共享的信息就同步了。
- 我们来看一个实例(该实例来源于FlashCom自带Sample)。我们先建立一个名称为ball的movieclip,这个mc中的ball是一个按钮元件,将来用来进行鼠标拖拽动作。如下图:
- 把ball从库中(F11)拖拽到场景上,给这个movieclip一个实例名称(instance name),我们叫做shareBall_mc。之后,存储整个文件在C:\Inetpub\wwwroot\flashcom\applications\doc_sharedball路径下,Fla文件名为doc_sharedball。如下图:
- 在时间轴上选定第一帧,在这里进行编程,我们来看下面的程序段落:
- 之后,我们发布这个Flash来看看。如下图:
7yue.com独家授权转载
出处:7yue.com
责任编辑:无意
◎进入论坛网络编程版块参加讨论
|