1.先在FMS的安装目录中添加自己的应用(例如我的目录D:\Macromedia\Flash Media Server 2\applications),在applications目录下建立文件夹userList。
2.用文本编辑器编写服务器端脚本main.asc文件,内容如下:
js 代码
- application.onAppStart = function()
- {
- userList_so = SharedObject.get ("userList","false");
- }
- application.onConnect = function(client,userName)
- {
- client.userName = userName;
- userList_so.setProperty (userName, userName);
- return true;
- }
-
- application.onDisconnect = function(client)
- {
- userList_so.setProperty(client.userName,null);
- }
3.编写客户端应用userList.mxml,内容如下:
xml 代码
- <!---->xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp();">
- <mx:Label x="79" y="63" text="User Name:" fontWeight="bold" fontStyle="italic"/>
- <mx:TextInput x="155" y="61" id="txtUserName"/>
- <mx:Button x="82" y="89" label="Connect To Flash Media Server" width="233" fontWeight="bold" fontStyle="italic" click="connectServer();"/>
- <mx:List x="82" y="145" width="233" height="252" id="listUserList" labelField="userName">mx:List>
- <mx:Label x="82" y="119" text="User List:" fontWeight="bold" fontStyle="italic"/>
- <mx:Script>
- <!---->
- import flash.net.*;
- import mx.controls.*;
- import flash.events.*;
- import mx.collections.ArrayCollection;
-
- private var conn:NetConnection;
- private var sharedObject:SharedObject;
-
- NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;
- SharedObject.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;
-
- private function initApp():void
- {
- conn = new NetConnection();
- conn.addEventListener(NetStatusEvent.NET_STATUS, netStatus);
- conn.addEventListener(SecurityErrorEvent.SECURITY_ERROR, netSecurityError);
- }
-
- private function netStatus(event:NetStatusEvent):void
- {
- var connStatus:String = event.info.code;
- Alert.show(connStatus);
- if(connStatus == "NetConnection.Connect.Success")
- {
- sharedObject = SharedObject.getRemote("userList", conn.uri, false);
- sharedObject.addEventListener(SyncEvent.SYNC, soOnSync);
- sharedObject.connect(conn);
- listUserList.dataProvider = new ArrayCollection();
- }
- }
-
- private function soOnSync(event:SyncEvent):void
- {
- var dp:ArrayCollection = listUserList.dataProvider as ArrayCollection;
- dp.removeAll();
- for(var i:String in sharedObject.data)
- {
- var item:Object = {userName:i,data:i};
- dp.addItem(item);
- }
- listUserList.dataProvider = dp;
- }
-
- private function netSecurityError(event:SecurityErrorEvent):void
- {
- Alert.show("连接到服务器发生错误!"+event.text);
- }
-
- private function connectServer():void
- {
- Alert.show(txtUserName.text+"正在登录...");
- conn.connect("rtmp://localhost/userList",txtUserName.text);
- }
-
- ]]>
- mx:Script>
- mx:Application>
分享到:
相关推荐
然后,我们可以使用NetConnection对象发送和接收数据,实现用户之间的即时消息传递。 SharedObject则扮演了数据存储和共享的角色。在聊天室应用中,当用户发送消息时,这些消息通常会被存储在一个SharedObject中,...
本文将详细阐述如何使用Flex连接到FMS,并实现视频发送功能。 **一、准备工作** 1. **开发工具**: 首先,你需要安装Flash MX Authoring工具,这是Flex的基础。同时,你也需要Flash MX Communication Server,它是...
SharedObject是客户端和服务器之间同步数据的一种机制,当用户登录时,其在线状态会被更新并广播给其他用户,实现在线用户列表的实时更新。 此外,案例开发还包括了如何创建可交互的FMS连接、基于FMS的流媒体播放...
在线用户的状态通过FMS的共享对象(SharedObject)来维护。每个用户登录后,其在线状态会更新到SharedObject中,这样所有客户端都能实时获取到当前在线用户的信息。这种方式提高了效率,减少了服务器的负担,因为...
### Flex3.0 学习手册关键知识点综述 ...6. **远程共享对象**: 利用SharedObject实现多人在线聊天。 通过上述内容的学习,读者能够全面掌握Flex3.0的基础知识和技术要点,并能够运用这些技能来开发实际的应用程序。
`var so:SharedObject = SharedObject.getLocal("mydata", "/");` 这行代码创建了一个名为“mydata”的本地共享对象,指定的路径"/"表示该对象将在应用程序的根目录下。 2. 存储数据: `var user:Object = new ...
1. **SharedObject介绍**:共享对象是一种存储数据的方式,可以在不同的客户端之间共享。 2. **游戏中移动同步的原理和简单实现**:通过共享对象可以实现实时数据同步,例如游戏角色的位置信息更新。 #### 五、...
在AS3中,可以使用`NetConnection`和`NetStream`类与FMS建立连接,并通过`RemoteObject`或`SharedObject`类进行数据交换。 在【压缩包子文件的文件名称列表】中,"flash+FMS斗地主游戏源程序"可能包含了以下部分: ...
在 Flex 的服务器端,使用 FluorineFx 实现远程共享对象的方式与 Flash Media Server (FMS) 不同。FluorineFx 提供了 `ISharedObjectService` 接口,其中的 `CreateSharedObject()` 方法用于创建远程共享对象。`...
6. **Scope 和 Room 管理**: Scope 和 Room 是 Red5 中的概念,用于管理和组织客户端连接,实现用户分组、聊天室等功能。 7. **视频播放程序**: 书中会展示如何开发视频播放程序,涵盖从视频获取、播放控制到错误...
- **概念解析**:SharedObject是Red5中用于存储跨连接会话数据的机制,能够在不同用户间共享信息,适用于游戏中的移动同步等场景。 - **移动同步原理**:通过SharedObject,游戏中的玩家移动和其他动态信息能够实时...
MultiThreadedApplicationAdapter是Red5应用程序的基础类,提供了操作SharedObjects、streams、连接和服务列表的方法,同时也是IScope的基本实现。开发者通常会自定义ApplicationAdapter类以实现特定功能。 以下是...
SharedObject是Flash与服务器之间同步数据的一种机制,类似于小型数据库,适用于实现游戏中的玩家位置同步或其他需要实时更新的数据共享。 **6. 服务器执行计划** 教程可能还会介绍如何在Red5服务器上安排任务执行...