·您当前的位置:首页 > 技术教程 > FMS教程 >

[FMS]FMS5.0流媒体服务器脚本文件main.asc用法示例

时间:2014-03-01 15:10adobe.com
FMS设置完好,端口也已经开放,可连接上服务器,但是访问不到main.asc文件,借用下网上一个例子,一个简单的客户端通过访问服务器具有涂鸦功能的应用。略微修改。

借用下网上一个例子,一个简单的客户端通过访问服务器具有涂鸦功能的应用。略微修改。

1.客户端

  1. package  
  2. { 
  3.     import flash.display.Sprite; 
  4.     import flash.events.MouseEvent; 
  5.     import flash.events.NetStatusEvent; 
  6.     import flash.events.SyncEvent; 
  7.     import flash.net.NetConnection; 
  8.     import flash.net.SharedObject; 
  9.     import flash.text.TextField; 
  10.     import flash.text.TextFieldAutoSize; 
  11.     import fl.events.ColorPickerEvent; 
  12.     import flash.events.Event; 
  13.     import flash.geom.ColorTransform; 
  14.     import flash.net.URLRequest; 
  15.     import flash.display.Loader; 
  16.     public class RemoteStore extends Sprite 
  17.     { 
  18.         private var remoteStore:SharedObject; 
  19.         private var con:NetConnection; 
  20.         private var pos:Array; 
  21.         private var isDrawing:Boolean = false; 
  22.         private var lineColor:uint; 
  23.         private var lineThickness:Number = 1.0; 
  24.         private var points:Array; 
  25.         private var isFirstSync:Boolean = true; 
  26.         private var sprite:Sprite=new Sprite(); 
  27.  
  28.         private var UserName:String = "123"; 
  29.  
  30.         public function RemoteStore() 
  31.         { 
  32.             mog_lb.text = "CuPlayer.com提示正在连接服务器...."; 
  33.             this.addChild(mog_lb); 
  34.             var picreq:URLRequest = new URLRequest("ms.jpg"); 
  35.             var pic:Loader=new Loader(); 
  36.             pic.load(picreq); 
  37.             bank.addChild(pic); 
  38.             bank.addChild(sprite); 
  39.             con=new NetConnection(); 
  40.             var clientObj:Object = new Object();//flash.net.NetConnection 无法调用回调 onBWDone。 
  41.             clientObj.WB = WB; 
  42.             con.client = clientObj; 
  43.             con.connect("rtmp://localhost/RemoteStore"); 
  44.  
  45.             con.addEventListener(NetStatusEvent.NET_STATUS,onConNetStatu); 
  46.         } 
  47.         public function onConNetStatu(e:NetStatusEvent):void 
  48.         { 
  49.             if (e.info.code == "NetConnection.Connect.Success") 
  50.             { 
  51.                 remoteStore = SharedObject.getRemote("DrawDemo",con.uri,false); 
  52.                 remoteStore.connect(con); 
  53.                 remoteStore.fps = 10; 
  54.                 remoteStore.data.pos = points; 
  55.                 remoteStore.client = this; 
  56.                 remoteStore.addEventListener(SyncEvent.SYNC,onSynchandler); 
  57.                 mog_lb.text = "CuPlayer.com提示成功连接服务器..."; 
  58.                 trace("NetConnection.Connect.Success"); 
  59.  
  60.             } 
  61.             if (e.info.code == "NetConnection.Connect.Failed") 
  62.             { 
  63.                 mog_lb.text = "CuPlayer.com提示连接服务器失败.."; 
  64.             } 
  65.         } 
  66.         public function onSynchandler(e:SyncEvent):void 
  67.         { 
  68.             if (isFirstSync) 
  69.             { 
  70.                 this.bank.addEventListener(MouseEvent.MOUSE_MOVE,onmouseMove); 
  71.                 this.bank.addEventListener(MouseEvent.MOUSE_DOWN,onmouseDown); 
  72.                 this.bank.addEventListener(MouseEvent.MOUSE_UP,onmouseUp); 
  73.                 cleaner.addEventListener(MouseEvent.CLICK,clicker); 
  74.                  
  75.                 btn.addEventListener(MouseEvent.CLICK,clicker1); 
  76.             } 
  77.             if (isDrawing) 
  78.             { 
  79.                 return; 
  80.             } 
  81.  
  82.             if (remoteStore.data.pos != null) 
  83.             { 
  84.                 this.sprite.graphics.lineStyle(lineThickness,lineColor); 
  85.                 var pos:Array = remoteStore.data.pos as Array; 
  86.                 for (var i:int=0; i<pos.length; i++) 
  87.                 { 
  88.                     if (i == 0) 
  89.                     { 
  90.                         this.sprite.graphics.moveTo(pos[i].x,pos[i].y); 
  91.                     } 
  92.                     else 
  93.                     { 
  94.                         this.sprite.graphics.lineTo(pos[i].x,pos[i].y); 
  95.                     } 
  96.                 } 
  97.             } 
  98.         } 
  99.         public function onmouseUp(e:MouseEvent):void 
  100.         { 
  101.             remoteStore.setProperty("pos",points); 
  102.             isDrawing = false; 
  103.             remoteStore.send("setLineStyle",lineThickness,lineColor,colorTran); 
  104.         } 
  105.         public function onmouseDown(e:MouseEvent):void 
  106.         { 
  107.             getcolor.addEventListener(ColorPickerEvent.CHANGE,changeHandler); 
  108.             getnum.addEventListener(Event.CHANGE, changeNum); 
  109.             e.updateAfterEvent(); 
  110.             this.sprite.graphics.lineStyle(lineThickness,lineColor); 
  111.             points=new Array(); 
  112.             this.sprite.graphics.moveTo(e.localX,e.localY); 
  113.             points.push({x:e.localX,y:e.localY}); 
  114.         } 
  115.         public function onmouseMove(e:MouseEvent):void 
  116.         { 
  117.             if (e.buttonDown) 
  118.             { 
  119.                 this.sprite.graphics.lineTo(e.localX,e.localY); 
  120.                 var p:Object = {x:e.localX,y:e.localY}; 
  121.                 points.push(p); 
  122.                 isDrawing = true; 
  123.                 e.updateAfterEvent(); 
  124.             } 
  125.         } 
  126.         public function setLineStyle(thickness:Number,clr:uint,col:uint):void 
  127.         { 
  128.             colcolorTran = col; 
  129.             lineThickness = thickness; 
  130.             lineColor = clr; 
  131.         } 
  132.         public function changeHandler(e:ColorPickerEvent):void 
  133.         { 
  134.             lineColor = e.target.selectedColor; 
  135.         } 
  136.         public function changeNum(event:Event):void 
  137.         { 
  138.             lineThickness = event.target.value; 
  139.         } 
  140.         public function clicker(event:MouseEvent):void 
  141.         { 
  142.             this.sprite.graphics.clear(); 
  143.             con.call("clearWB", null,UserName); 
  144.         } 
  145.          
  146.         public function clicker1(event:MouseEvent):void 
  147.         { 
  148.             this.sprite.graphics.clear(); 
  149.             con.call("clearWB", null,UserName); 
  150.         } 
  151.          
  152.         public function WB(UserName:Object):void 
  153.         { 
  154.             trace("------CuPlayer.com提示WB--------"); 
  155.             this.sprite.graphics.clear(); 
  156.         } 
  157.     } 
  158. } 

2、服务器端:

  1. application.onAppStart = function() { 
  2.     trace("onAppStart"); 
  3.      
  4. }; 
  5. application.onConnect = function(client, uName) { 
  6. trace("onConnect = "+uName); 
  7.     client.UserName = uName; 
  8.      
  9.     application.acceptConnection(client); 
  10.     //接收客户端传来的数据 (跟客户端的 client_nc.call 相对应) 
  11.      
  12.          client.clearWB= function(aa) { 
  13.                 trace(aa) 
  14.         application.broadcastMsg("WB", aa); 
  15.                  
  16.     }; 
  17.      
  18. }; 
  19. application.onAppStop = function() { 
  20.     trace("onAppStop"); 
  21. }; 

3、所存问题

问题:FMS设置完好,端口也已经开放,可连接上服务器,但是访问不到main.asc文件。

解答:网上的一些例子都是基于fms3.0。当时装的是FMS4.0试用版本,所以没有访问成功。以为要重装为fms3.0,无意间在天地会上发现了一种方法,竟然解决了。方法如下:安装FMS后,必须在C:\Windows\system32\drivers\etc\hosts,也就是打开host这个文件,用记事本程序打开,在最后一行,加入:127.0.0.1 activate.adobe.com 。重启服务器,搞定!

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器