FLEX+FMS实现远程共享、电子白板、远程交流会议的功能
******************************************************************************* private function InitApp():void { nc=new NetConnection; nc.connect("rtmp://192.168.0.100/SharedObjectApp"); nc.addEventListener(NetStatusEvent.NET_STATUS,operateShareObject); } private function operateShareObject(evt:NetStatusEvent):void { isConnectSuccess=(evt.info.code=="NetConnection.Connect.Success"); if(isConnectSuccess) { shareObject=SharedObject.getRemote("ShareTest",nc.uri,false); 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; default: break; } } } private function updateAllClientMsg():void { memo1.text+=shareObject.data.msg+"n"; //这是文字信息的共享 } ? 完整的代码很多地方都能找到,就不贴了,有需要的找我吧。解释一下,每个客户端需要调用类似下面的代码来通知服务器更新数据: ? ? shareObject.setProperty("msg",msgText.text);? shareObject.data.msg这里的msg就是所更新的属性,你可以根据自己的需要随便定义,setProperty的第二个参数是msg对应的数据。 在共享画图的时候,我们在鼠标按下时开始在本地画面、鼠标移动时继续画并记录坐标数据,鼠标抬起时本地画图完成,同时调用setProperty将线条粗细、颜色、透明度等信息以及所有坐标数据传递给服务器,在上面的updateAllClientMsg里面根据这些数据画图,就可以更新到所有客户端,实现共享画图了。 我对FLEX也是刚学,每天太忙也没时间去仔细研究,只以这几天了解的来看,FLEX+FMS的功能真的很强大, 以前抓耳挠腮要写很多代码实现的功能,现在都轻而易举实现, 而且,而且,而且。。。支持BS,跨平台,不用安装插件。。。 对于那些希望快速形成自己的流媒体应用软件的人来说,真应该好好研究研究一下啊! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |