<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="white">
<mx:Script>
<![CDATA[
import com.adobe.serialization.json.JSON;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
//绑定下拉框的数据源
[Bindable]
private var select:Array=[{label:"请选择...",value:'-1'},
{label:"客户端1",value:'z111'},
{label:"客户端2",value:'z222'},
{label:"客户端3",value:'z333'}];
//绑定表格组件的数据源
[Bindable]
private var list:ArrayCollection = new ArrayCollection();
//socket连接对象
private var xmlSocket:XMLSocket;
internal function createXMLSocket():void{
xmlSocket = new XMLSocket();
xmlSocket.connect("192.168.1.101",58686);
//连接处理函数
xmlSocket.addEventListener(Event.CONNECT,connectionFun);
//关闭处理函数
xmlSocket.addEventListener(Event.CLOSE,closeFun);
//接受数据处理函数
xmlSocket.addEventListener(DataEvent.DATA,receiveMsg);
}
internal function connectionFun(event:Event):void{
//如果已经连接
if(xmlSocket.connected){
text.text="已经成功连接到服务器";
}else{
text.text="连接失败";
}
}
internal function closeFun(event:Event):void{
text.text="已经断开服务器";
btn.label = "连接";
}
internal function receiveMsg(event:DataEvent):void{
//服务器发送过来的数据
var strJSON:String = event.data;
//通过JSON转为对象
var jo:Object = JSON.decode(strJSON);
//加入到集合中
list.addItem(jo);
//刷新集合 已更新 gird中的显示数据
list.refresh();
}
internal function changeSocket():void{
if(btn.label == "连接"){
if(cbb.selectedItem.value == "-1"){
Alert.show("请选择客户端");
return;
}
createXMLSocket();
btn.label = "断开";
}else{
xmlSocket.close();
btn.label = "连接";
text.text="";
}
}
]]>
</mx:Script>
<mx:VBox width="100%" height="100%" fontSize="14">
//下拉框组件
<mx:ComboBox id="cbb" dataProvider="{select}" labelField="label"></mx:ComboBox>
<mx:Button label="连接" id="btn" click="changeSocket()"/>
<mx:Label text="" id="text" width="100%"/>
//表格组件
<mx:DataGrid dataProvider="{list}" width="90%">
<mx:columns>
<mx:DataGridColumn headerText="客户姓名" dataField="customer"/>
<mx:DataGridColumn headerText="发货地址" dataField="address"/>
<mx:DataGridColumn headerText="下单时间" dataField="date"/>
</mx:columns>
</mx:DataGrid>
</mx:VBox>
</mx:Application>
AS3中XMLSocket的应用
最新推荐文章于 2024-08-02 14:17:18 发布