- 浏览: 1428752 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (564)
- 算法 (7)
- 流金岁月 (1)
- Javascript (30)
- actionscript (108)
- as3.0 game (14)
- flex (84)
- fms2 (27)
- 正则表达式 (7)
- 开源组件代码(as3.0) (1)
- Pv3d (13)
- Cairngorm (4)
- vbs (54)
- VB程序设计 (26)
- 计算机应用与维护 (4)
- 职场实用穿衣技巧 (3)
- 历史风云 (15)
- 淡泊明志,宁静致远 (12)
- 情感 (26)
- 杂谈 (41)
- 越南风 (14)
- DirectX (9)
- Dev-cpp (11)
- 回望百年 (2)
- 建站经验 (2)
- Python (24)
- 网络赚钱 (4)
- php (2)
- html (1)
- ob0短址网 (1)
- ob0.cn (1)
- wordpress (1)
- pandas logistic (1)
- haxe (1)
- opencv (1)
- 微信小程序 (3)
- vue (3)
- Flutter (1)
最新评论
-
GGGGeek:
第一个函数滚动监听不起作用,onPageScroll可以
微信小程序--搜索框滚动到顶部时悬浮 -
naomibyron:
解决办法:工具 -> 编译选项 -> 编译器 ...
dev-c++中编译含WINSOCK的代码出现错误的解决方法 -
haichuan11:
这个…… 代码不全真的是让人很憋屈的感觉啊
actionScript 3.0 图片裁剪及旋转 -
chenyw101:
老兄能留个QQ号吗?具体的我有些东西想请教下你
用VB制作网站登陆器 -
yantao1943:
貌似有点问题,只派发一次事件啊
使用ActionScript 2.0或ActionScript 3.0处理音频文件的提示点(cue
原理和代码都很简单,没什么好说的.
一:利用ShareObject的同步事件来将消息广播到所有客户端:
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="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/BasicSO";
- 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>
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="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/BasicSO"; 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服务端通过编码方试广播消息到所有客户端:
1.客户端代码:
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="white" layout="vertical" initialize="initAppSO();">
- <mx:Script>
- <![CDATA[
- import com.client.ClientObj;
- private var nc:NetConnection;
- private var shareObject:SharedObject;
- private var monthDay:Date;
- private var isConnectSuccess:Boolean;
- private static const RTMP_URL:String="rtmp://localhost/BasicSO/chat";
- private function initAppSO():void{
- nc=new NetConnection;
- nc.connect(RTMP_URL);
- var clientObj:ClientObj=new ClientObj(soList);
- nc.client=clientObj;
- nc.addEventListener(NetStatusEvent.NET_STATUS,checkStatus);
- }
- private function checkStatus(evt:NetStatusEvent):void{
- isConnectSuccess=(evt.info.code=="NetConnection.Connect.Success");
- if(isConnectSuccess){
- soList.text+="connect success"+"\n";
- }
- }
- private function addDataToShareObject():void{
- var msg:String=msgText.text;
- var responder:Responder=new Responder(callback);
- nc.call("writeFile",responder,msg);
- msgText.text="";
- }
- private function callback(str:String):void{
- // ToDo something
- }
- ]]>
- </mx:Script>
- <mx:Label text="chating list data:"/>
- <mx:TextArea id="soList" width="300" height="220">
- </mx:TextArea>
- <mx:HBox>
- <mx:Label text="msgText:"/>
- <mx:TextInput id="msgText"/>
- <mx:Button label="send Msg" click="addDataToShareObject();"/>
- </mx:HBox>
- </mx:Application>
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="white" layout="vertical" initialize="initAppSO();"> <mx:Script> <![CDATA[ import com.client.ClientObj; private var nc:NetConnection; private var shareObject:SharedObject; private var monthDay:Date; private var isConnectSuccess:Boolean; private static const RTMP_URL:String="rtmp://localhost/BasicSO/chat"; private function initAppSO():void{ nc=new NetConnection; nc.connect(RTMP_URL); var clientObj:ClientObj=new ClientObj(soList); nc.client=clientObj; nc.addEventListener(NetStatusEvent.NET_STATUS,checkStatus); } private function checkStatus(evt:NetStatusEvent):void{ isConnectSuccess=(evt.info.code=="NetConnection.Connect.Success"); if(isConnectSuccess){ soList.text+="connect success"+"\n"; } } private function addDataToShareObject():void{ var msg:String=msgText.text; var responder:Responder=new Responder(callback); nc.call("writeFile",responder,msg); msgText.text=""; } private function callback(str:String):void{ // ToDo something } ]]> </mx:Script> <mx:Label text="chating list data:"/> <mx:TextArea id="soList" width="300" height="220"> </mx:TextArea> <mx:HBox> <mx:Label text="msgText:"/> <mx:TextInput id="msgText"/> <mx:Button label="send Msg" click="addDataToShareObject();"/> </mx:HBox> </mx:Application>
2.FMS服务器端代码:
这里我把聊天记录写到了服务器端的一个文件里.其实写不写都无所谓.
- application.onAppStart=function(){
- trace("app is started");
- };
- application.onConnect=function(client,name){
- client.id=name;
- application.acceptConnection(client);
- var file=new File("chatfile.text");
- client.writeFile=function(msg){
- file.open("text","append");
- if(file.isOpen){
- msg=client.id+":"+client.ip+":say:\n"+msg;
- trace(msg);
- file.write(msg);
- file.close();
- }
- //client.call("serverToClient",null,msg);
- for(var i=0;i<application.clients.length;i++){
- application.clients[i].call("serverToClient",null,msg);
- }
- }
- };
- application.onDisconnect=function(client){
- for(var i=0;i<application.clients.length;i++){
- msg=application.clients[i].id+" left!";
- application.clients[i].call("serverToClient",null,msg);
- }
- }
发表评论
-
控制连接数量和密码保护-flashcom教程 密码保护
2008-10-30 14:03 1201学习flashcom+学习英语(烂到死),无任何目的,本篇仅 ... -
AMF3 + AS 3.0 + ASP.NET 完整配置过程及源文件
2008-09-11 16:04 3533AMF3 + AS 3.0 + ASP.NET 完整配置过程及 ... -
FLEX结合FMS制作在线视频认证
2008-09-09 14:24 3783很多交友网站都具体在线视频认证能,如51.com。参考它的认 ... -
flex 3 + .net开发flash Remoting四[完整代码
2008-08-28 16:11 2172一. 相关说明: 本篇将呈现完整的Flash Remot ... -
FMS Client AS 自訂類別物件傳遞
2008-08-27 15:04 1022透過與 FMS 連線,可以共享 SharedObject 物件 ... -
FMS 常常会用到 3个Call 和3个Send
2008-08-27 14:51 2172FMS 常常会用到 3个Call 和3个Send 关于Flas ... -
flex as3 fms相关的资料(转)
2008-08-27 14:36 1660FMS.rar FMS系列教程http://www.fs2 ... -
视频类
2008-08-27 09:21 1786Flash Player作为流媒体的表现形式之一,视频编码是其 ... -
一步一步学Flash Media Server
2008-08-26 18:03 4323从今天起,我们来学习一下 Flash Media Server ... -
再说说onSync,SharedObject
2008-08-26 16:44 1576* 最多人不懂的就是:那个list参数看代码: my_rso ... -
视频监控软件(2)---异步录像
2008-08-26 16:10 1341不好意思,让大家久等了!今天我要实现的一个功能是异步录像!先讲 ... -
视频监控软件(1)---FMS视频流共享
2008-08-26 16:07 2671呵呵!临近毕业了,本人选择的毕业设计题目是(基于B/S模式的 ... -
flash fms WebService 交互过程
2008-08-26 16:01 1686//flash客户端call服务器端的方法,服务器端调用WS的 ... -
游戏开发常用FMS类
2008-08-26 15:51 1416游戏开发常用FMS类 ... -
FLEX提高篇--------ShareObject对象详解
2008-08-26 14:23 1101ShareObject,顾名思义共享对象,而通常意义上的共享, ... -
客户端呼叫Flash Medis Server3服务端入门
2008-08-26 14:02 1422当你不仅仅只想用FLEX来做纯业务数据的管理时,或者当你的项目 ... -
FLEX提高篇---------FMS简易聊天室加强版
2008-08-26 13:37 1803今天写了下简易聊天室的加强版 , 其实功能也十分有很 , 不过 ... -
Flex连接FMS实现用户列表(使用SharedObject)
2008-08-26 13:33 39561.先在FMS的安装目录中添加自己的应用(例如我的目录D:\M ... -
FMS 教程(SharedObject)用户列表
2008-08-26 13:32 2893FMS实现用户列表,一般都是利用List组件,和SharedO ... -
Fms教程7 理解共享对象
2008-08-26 13:13 1882理解共享对象 共享对象 ...
相关推荐
FMS聊天室FMS聊天室FMS聊天室FMS聊天室FMS聊天室
简易聊天室 flash多人聊天 FMS实现
FMS制作聊天室例子,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
asp+fms语音聊天室asp+fms语音聊天室
利用fms实现视频聊天程序,希望对和我一样的菜鸟们能有些帮助
FMS+AS3.0多人聊天室源文件下载。
一个简单的聊天室供大家分享,基于FMS的AS3聊天室源代码
fms,flash,视频聊天fms,flash,视频聊天fms,flash,视频聊天
Flex+FMS写的视频聊天,在本机亲测通过。但唯一不足得是在别的机子上连接不成功。我也不知道为什么。望有才之士能完善。huzhaohui1992@qq.com 如能完善,请给我邮箱一份,在下感激不尽。
以下为引用的内容: private function onPublishClick(evt:MouseEvent):void { nc = new NetConnection();...以live的形式发布的流不会在FMS里生成.fla文件,不同于“record”录制视频流生成.flv的视频文件。
flash+fms2视频聊天室-附带源码 源码在 html页面上有下载的超链接
Flex和Fms3打造在线聊天室(利用NetConnection对象和SharedObject对象) 中文说明文档和代码, 简单明了好资料
NULL 博文链接:https://abstractforever.iteye.com/blog/524123
通过FMS实现时时视频聊天(Flash|Flex)源码
实现点对点视频聊天,利用UPD协议可穿透多层NAT,支持高清摄像头,可扩展为更多应用
FMS4.5 注册码 FMS4.5 测试可用
实现网页在线视频聊天,环境fms2,flash cs4
FMS服务端语法.用于视频聊天,语音聊天。希望给开发视频聊天室的朋友一些帮助。
利用flex和FMS建立聊天室,fms为源码
FMS的最新版本已经到FMS 3了 ,本入门教程使用Flash Media Server 2 演示,但你可以很容易的升到 3,因为FMS 到 FMS3 的更新几乎没有什么改动 ,还有本教程客户端使用as1演示如果你需要用AS3的话,语法会有些变化,...