A-A+
flex+fms ShareObject制作简单聊天室
flex 是一个免费开源的框架,它与 flash 不同的是,flash 是基于桌面美术的创作工具,而 flex 则可以看成类似于 PHP 的开发工具,跟 flash 则是可以很好的结合使用,flex 和 flash 主要都是以 ActionScript 作为其核心的编程语言,这里就不多介绍了,
FMS是一组软件工具,用以对显示终端进入输入输出格式的应用程序,我们来看一下使用 flex+fms ShareObject 如何制作一款简单的在线聊天室。代码如下:
flex代码:
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgro
- undColor="white" layout="vertical" initialize="BasicPracticeSO();">
- <mx:Script>
- <![CDATA[
- private var nc:NetConnection;
- private var shareObject:SharedObject;
- private var monthDay:Date;
- private var isConnectSuccess:Boolean;
- private static const RTMP_URL:String="rtmp://localhost/chat";
- private function BasicPracticeSO():void{
- nc=new NetConnection;
- nc.connect(RTMP_URL);
- nc.addEventListener(NetStatusEvent.NET_STATUS,operateShareObject);
- }
- private function operateShareObject(evt:NetStatusEvent):void{
- isConnectSuccess=(evt.info.code=="NetConnection.Connect.Success");
- if(isConnectSuccess){
- shareObject=SharedObject.getRemote("userInfo",nc.uri,false);
- monthDay=new Date();
- shareObject.connect(nc);
- shareObject.addEventListener(SyncEvent.SYNC,detectSO);
- }
- }
- private function detectSO(e:SyncEvent):void{
- for(var chng:uint;chng<e.changeList.length;chng++){
- switch(e.changeList[chng].code){
- case "change":
- updateAllClientMsg();
- break;
- case "clear":
- break;
- case "success":
- break;
- default:
- break;
- }
- }
- }
- private function updateAllClientMsg():void{
- soList.text+=shareObject.data.msg+"n";
- }
- private function addDataToShareObject():void{
- shareObject.setProperty("msg",msgText.text);
- soList.text+=msgText.text+"n";
- msgText.text="";
- }
- ]]>
- </mx:Script>
- <mx:Label text="ShareObject data:"/>
- <mx:TextArea id="soList" width="300" height="120">
- </mx:TextArea>
- <mx:Form>
- <mx:FormHeading label="add data to ShareObject:"/>
- <mx:FormItem label="msg:">
- <mx:TextInput id="msgText"/>
- </mx:FormItem>
- <mx:FormItem>
- <mx:Button label="send Msg" click="addDataToShareObject();"/>
- </mx:FormItem>
- </mx:Form>
- </mx:Application>
FMS 代码:
- Client.prototype.echo = function(msg){
- trace("client.echo: " + msg);
- return msg;
- }