·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3下p2p NetGroup聊天代码示例(rtmfp协议示例)(3)

时间:2012-12-16 23:03CuPlayer.com
第六步:建立界面 s:TextArea left = 10 right = 10 top = 10 bottom = 40 id = txtHistory / s:TextInput x = 10 id = txtUser text = {user} bottom = 10 / s:TextInput left = 145 right = 88 id = txtMessage b

第六步:建立界面

  1.     <s:TextArea left="10" right="10" top="10" bottom="40" id="txtHistory"/> 
  2.     <s:TextInput x="10" id="txtUser" text="{user}" bottom="10"/> 
  3.     <s:TextInput left="145" right="88" id="txtMessage" bottom="10" enter="sendMessage()"/> 
  4.     <s:Button label="Send" click="sendMessage()" enabled="{connected}" bottom="10" right="10"/>  
  5.  
  6. 以下是完整的代码: 
  7.  
  8. <fx:Script> 
  9.   <![CDATA[ 
  10.    private const SERVER:String = "rtmfp://p2p.rtmfp.net/"; 
  11.    private const DEVKEY:String = "d8c6d5b18ddf65bf1529fd4c-c98c749416ce"; 
  12.    private var nc:NetConnection; 
  13.    private var netGroup:NetGroup; 
  14.    [Bindable] 
  15.    private var connected:Boolean = false; 
  16.    [Bindable] 
  17.    private var user:String; 
  18.     
  19.    private function connect():void{ 
  20.      nc = new NetConnection(); 
  21.      nc.addEventListener(NetStatusEvent.NET_STATUS,netStatus); 
  22.      nc.connect(SERVER+DEVKEY); 
  23.    }    
  24.     
  25.    internal function netStatus(evt:NetStatusEvent):void{ 
  26.       switch(evt.info.code){ 
  27.         case "NetConnection.Connect.Success": 
  28.       setupGroup(); 
  29.       break; 
  30.      case "NetGroup.Connect.Success": 
  31.       connected = true; 
  32.       break; 
  33.      case "NetGroup.Posting.Notify": 
  34.       receiveMessage(evt.info.message); 
  35.       break; 
  36.      
  37.       } 
  38.    } 
  39.     
  40.    private function setupGroup():void{ 
  41.      var gorupspec:GroupSpecifier = new GroupSpecifier("myGroup/g1"); 
  42.      gorupspec.serverChannelEnabled = true; 
  43.      gorupspec.postingEnabled = true; 
  44.      netGroup = new NetGroup(nc,gorupspec.groupspecWithAuthorizations()); 
  45.      netGroup.addEventListener(NetStatusEvent.NET_STATUS,netStatus); 
  46.      user = "user"+Math.round(Math.random() * 1000); 
  47.    } 
  48.     
  49.    private function sendMessage():void{ 
  50.      var message:Object = new Object(); 
  51.      message.sender = netGroup.convertPeerIDToGroupAddress(nc.nearID); 
  52.      message.user = txtUser.text; 
  53.      message.text = txtMessage.text; 
  54.      netGroup.post(message); 
  55.      receiveMessage(message); 
  56.      txtMessage.text = ""; 
  57.    } 
  58.     
  59.    internal function receiveMessage(message:Object):void{ 
  60.     write(message.user+": "+message.text); 
  61.    } 
  62.    private function write(txt:String):void{ 
  63.     txtHistory.text += txt+"\n"; 
  64.    } 
  65.     
  66.   ]]> 
  67.  </fx:Script> 

 

热门文章推荐

请稍候...

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

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