AS3中XMLSocket的应用


<?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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值