- 论坛徽章:
- 0
|
Flex的客户端
main.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()" backgroundColor="#AAAAAA">
- <mx:Panel layout="absolute" left="10" right="10" top="10" bottom="10">
- <mx:TextArea id="mainText" top="10" left="10" right="10" bottom="40"/>
- <mx:TextInput id="msg" left="10" right="72" bottom="10"/>
- <mx:Button id="sendBtn" label="Send" right="10" bottom="10"/>
- </mx:Panel>
- <!--mx:Style source="assets/style.css" /-->
- <mx:Script>
- <![CDATA[
- import flash.net.*;
- import mx.managers.PopUpManager;
- private const PORT:int = 4657;
- private const HOST:String = "61.129.51.204";
- private var svrMsg:String = "";
- private var clientSocket:Socket = new Socket;
- private var loginPanel:Login = new Login;
- private function init():void
- {
- this.msg.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
- this.sendBtn.addEventListener(MouseEvent.CLICK,onSend);
- this.clientSocket.addEventListener(Event.CONNECT,onConnect);
- this.clientSocket.addEventListener(Event.CLOSE,onClose);
- this.clientSocket.addEventListener(ProgressEvent.SOCKET_DATA,onData);
- PopUpManager.addPopUp(loginPanel,this,true);
- PopUpManager.centerPopUp(loginPanel);
- connectToServer();
- }
- private function connectToServer():void
- {
- try{
- this.clientSocket.connect(HOST,PORT);
- }catch(e:Error){
- return;
- //this.nativeApplication.exit(0);
- }
- this.clientSocket.writeMultiByte("<main_action>setNickName</main_action><nickname>"+loginPanel.nickName+"</nickname>","gb2312");
- this.clientSocket.flush();
- }
- private function onConnect(e:Event):void
- {
- svrMsg+="connect to server! \n";
- updateMsg();
- }
- private function onClose(e:Event):void
- {
- svrMsg+="connect close! \n";
- updateMsg();
- }
- private function onData(e:ProgressEvent):void
- {
- svrMsg+=this.clientSocket.readMultiByte(this.clientSocket.bytesAvailable,"gb2312")+"\n";
- updateMsg();
- }
- private function onSend(e:MouseEvent):void
- {
- send();
- }
- private function onKeyDown(e:KeyboardEvent):void
- {
- if(13==e.charCode)
- {
- send();
- }
- }
- private function send():void
- {
- var temp:String = "<main_action>sendMsg</main_action><nickname>Alan</nickname><msg>"+this.msg.text+"</msg>"
-
- this.clientSocket.writeMultiByte(temp,"gb2312");
- this.clientSocket.flush();
- this.msg.text = "";
- }
- private function updateMsg():void
- {
- mainText.text = svrMsg;
- }
- ]]>
- </mx:Script>
- </mx:Application>
复制代码
Login.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="270" height="84" title="Input your name">
- <mx:TextInput id="txt" x="10" y="12" keyDown="if(13==event.charCode)onClick();"/>
- <mx:Button x="178" y="12" label="Button" click="onClick()"/>
- <mx:Script>
- <![CDATA[
- import mx.managers.PopUpManager;
- public var nickName:String = "";
- private function onClick():void
- {
- PopUpManager.removePopUp(this);
- name = txt.text;
- }
- ]]>
- </mx:Script>
- </mx:TitleWindow>
复制代码
|
|