您的位置:首页 > 移动开发 > Objective-C

FMS3系列(六):使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash)

2009-05-17 04:26 836 查看
      FMS开发中,经常会使用共享对象来同步用户和存储数据。对于实现广播文字信息实现聊天的支持非常强大,还可以跟踪用户的时时动作,在开发Flash多人在线游戏中的应用也非常广阔。

      在使用FMS开发共享对象时需要注意,只有使用Flash Media Interactive Server或Flash Media Development Server这两个版本时才能够创建和使用远程共享对象,来实现多客户端的应用程序之间共享数据。如果是使用的Flash Media Streaming Server版FMS是不能创建远程共享对象的,只能创建本地共享对象,类似于传统Web开发中的Cookie。

      使用共享对象(SharedObject)来开发时时文字聊天其实是很简单的,SharedObject可以跟踪和广播消息,连接到SharedObject中的其中任何一个客户端改变了SharedObject中的数据,SharedObject就会将最新的数据广播到连接到它的所有客户端。从某种角度可以理解为远程的SharedObject是一个同步很多用户的一个网络中心。下图为官方发布的SharedObject广播消息图:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12">
<mx:Script>
<![CDATA[
            import mx.controls.Alert;
            import mx.collections.ArrayCollection;
            import flex.VO.Message;

private var nc:NetConnection;
private var so:SharedObject;

private function onClick():void

private function onNetStatusHandler(evt:NetStatusEvent):void

private function onSyncHandler(evt:SyncEvent):void

private function onSend():void

private function convertArrayCollection(arrNew:ArrayCollection,arrOld:ArrayCollection):void
        ]]>
</mx:Script>
<mx:Panel x="22" y="22" width="482" height="260" layout="absolute"  id="panChat"
        title="文字聊天">
<mx:TextArea x="0" y="0" width="100%" height="100%" backgroundColor="#FCDADA" id="msgText"/>
<mx:ControlBar>
<mx:TextInput width="53" id="txtUser"/>
<mx:Label text="说:"/>
<mx:TextInput width="195" id="txtMessage"/>
<mx:Button label="Send" click="onSend()"/>
<mx:Button label="Connection" fontWeight="normal" click="onClick()"/>
</mx:ControlBar>
</mx:Panel>

</mx:Application>

      程序运行截图如下:



                                                  图1----FMS状态图



                                                图2----聊天客户端(张三)



                                          图3----聊天客户端(李四)



      如上图,在FMS应用目录下创建了一后缀为.fso的文件,这就是永久性的远程共享对象文件名。在使用远程共享的时候,根据实际需求来确定是否使用永久性的远程共享对象,一般做聊天应用我个人建议使用临时远程共享对象(不生成.fso文件),要存储聊天记录可以通过其他方式来保存。

      详细大家可以查看官方提供的文档,在FMS的安装目录下就有,我的是D:\Adobe\Flash Media Server 3\documentation\flashmediaserver_AS3LR\index.html

      本文就介绍于此,如文中有什么问题,请大家拍砖指正。[b]本文示例源代码下载[/b]

转自:/article/4658472.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐