Flex ComboBox 加载xml数据
xml数据:
<?xml version="1.0" encoding="utf-8" ?>
代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="Init()" width="250" height="215" styleName="winupload" cornerRadius="20" borderStyle="none">
<mx:Script>
<![CDATA[
import mx.messaging.messages.ErrorMessage;
import mx.events.ListEvent;
import mx.events.ToolTipEvent;
import mx.utils.ArrayUtil;
import mx.utils.ObjectUtil;
import mx.events.IndexChangedEvent;
import flash.display.*;
import flash.errors.*;
import flash.events.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.text.*;
import mx.formatters.DateFormatter;
import mx.controls.sliderClasses.Slider;
import mx.events.SliderEvent;
import mx.events.VideoEvent;
import flash.events.EventDispatcher;
import mx.controls.Alert;
import mx.utils.ObjectUtil;
import mx.controls.TileList;
import mx.managers.PopUpManager;
private var UserMobile:String="";//用户名
private var IsLogin:Boolean=false;//是否登录
private var xmlarray:Array=null;
private function Init():void
{
var requestBz:URLRequest=new URLRequest("http://diy.bonson.cn/soft/CLLBList.aspx");
var bzloader:URLLoader=new URLLoader();
bzloader.dataFormat=URLLoaderDataFormat.BINARY;
bzloader.load(requestBz);
bzloader.addEventListener(Event.COMPLETE,loadLbFinish);
/*
this.width=250;
this.height=215;
var requestBz:URLRequest=new URLRequest("http://diy.bonson.cn/soft/GetFlashSession.aspx");
var bzloader:URLLoader=new URLLoader();
bzloader.dataFormat=URLLoaderDataFormat.BINARY;
bzloader.load(requestBz);
bzloader.addEventListener(Event.COMPLETE,loadSessionFinish);
this.x = this.parent.width / 2 - this.width / 2;
this.y = this.parent.height / 2 - this.height / 2;
this.width=0;
this.height=0;
*/
}
private function loadSessionFinish(event:Event):void
{
var BA:ByteArray = new ByteArray;
BA.writeBytes((event.target as URLLoader).data);
BA.position = 0;
var result:String=BA.readMultiByte(BA.length,"utf-8").replace("\r\n","");
var tempstr:String="false";
var i:int=0;
for(i;i<result.length;i++)
{
if(result.charAt(i) != tempstr.charAt(i))
{
this.IsLogin=true;
var val:Array=result.split("|");
UserMobile=val[1];
break;
}
}
if(this.IsLogin==false)
{
Alert.show("请您先登录!","提示信息",Alert.OK);
PopUpManager.removePopUp(this);
}
else
{
var requestBz:URLRequest=new URLRequest("http://diy.bonson.cn/soft/CLLBList.aspx");
var bzloader:URLLoader=new URLLoader();
bzloader.dataFormat=URLLoaderDataFormat.BINARY;
bzloader.load(requestBz);
bzloader.addEventListener(Event.COMPLETE,loadLbFinish);
this.width=250;
this.height=215;
}
}
private function loadLbFinish(event:Event):void
{
var BA:ByteArray = new ByteArray;
BA.writeBytes((event.target as URLLoader).data);
BA.position = 0;
var result:String=BA.readMultiByte(BA.length,"utf-8").replace("\r\n","");
var cllb:XML = XML(result);
var results:XMLList = cllb.children();
var array:Array = ElementToAttr(results);
xmlarray=ElementToAttr(results);
//this.ddl_cllb.labelField="typename";
//this.ddl_cllb.data=array["typevalue"];
this.ddl_cllb.dataProvider = array;
}
public function ElementToAttr(results:XMLList):Array
{
var array:Array=new Array();
for each(var child:XML in results)
{
var obj:Object=new Object();
//方法1:
/*
obj[child.nodeKind()]=child[child.nodeKind()];
for each(var ite:XML in child.children())
{
obj[ite.name().toString()]=child[ite.name().toString()];
}
*/
//方法2:
obj["label"]=child.typename;
obj["data"]=child.typevalue;
array.push(obj);
}
return array;
}
private function ddlchange():void
{
this.txt_mc.text=this.ddl_cllb.selectedLabel+"|"+String(this.ddl_cllb.value);
for(var i:int=0;i<xmlarray.length;i++)
{
this.txt_js.text+= xmlarray[i]["typename"]+"|"+xmlarray[i]["typevalue"]+"\r";
}
}
private function Upload():void
{
}
]]>
</mx:Script>
<mx:Label text="作品类型:" x="10" y="19"/>
<mx:Label text="彩铃名称:" x="10" y="65"/>
<mx:TextArea x="76" y="105" height="62" width="160" wordWrap="true" maxChars="200" id="txt_js"/>
<mx:Button label="返 回" click="PopUpManager.removePopUp(this);" horizontalCenter="48" verticalCenter="84"/>
<mx:Button label="上 传" click="Upload()" id="btn_upload" enabled="true" horizontalCenter="-50" verticalCenter="84"/>
<mx:TextInput x="76" y="63" width="160" editable="true" maxChars="50" id="txt_mc"/>
<mx:Label text="作品介绍:" x="10" y="125"/>
<mx:ComboBox x="76" y="16" id="ddl_cllb" change="ddlchange()" selectedIndex="0" editable="false"></mx:ComboBox>
</mx:Canvas>
<?xml version="1.0" encoding="utf-8" ?>
<typename>翻唱彩铃</typename>
<typevalue>1</typevalue>
</cllb>
<typename>原创彩铃</typename>
<typevalue>2</typevalue>
</cllb>
<typename>搞笑彩铃</typename>
<typevalue>3</typevalue>
</cllb>
<typename>节日问候</typename>
<typevalue>4</typevalue>
</cllb>
<typename>童声童趣</typename>
<typevalue>5</typevalue>
</cllb>
<typename>其他</typename>
<typevalue>6</typevalue>
</cllb>
</cllblist>
代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="Init()" width="250" height="215" styleName="winupload" cornerRadius="20" borderStyle="none">
<mx:Script>
<![CDATA[
import mx.messaging.messages.ErrorMessage;
import mx.events.ListEvent;
import mx.events.ToolTipEvent;
import mx.utils.ArrayUtil;
import mx.utils.ObjectUtil;
import mx.events.IndexChangedEvent;
import flash.display.*;
import flash.errors.*;
import flash.events.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.text.*;
import mx.formatters.DateFormatter;
import mx.controls.sliderClasses.Slider;
import mx.events.SliderEvent;
import mx.events.VideoEvent;
import flash.events.EventDispatcher;
import mx.controls.Alert;
import mx.utils.ObjectUtil;
import mx.controls.TileList;
import mx.managers.PopUpManager;
private var UserMobile:String="";//用户名
private var IsLogin:Boolean=false;//是否登录
private var xmlarray:Array=null;
private function Init():void
{
var requestBz:URLRequest=new URLRequest("http://diy.bonson.cn/soft/CLLBList.aspx");
var bzloader:URLLoader=new URLLoader();
bzloader.dataFormat=URLLoaderDataFormat.BINARY;
bzloader.load(requestBz);
bzloader.addEventListener(Event.COMPLETE,loadLbFinish);
/*
this.width=250;
this.height=215;
var requestBz:URLRequest=new URLRequest("http://diy.bonson.cn/soft/GetFlashSession.aspx");
var bzloader:URLLoader=new URLLoader();
bzloader.dataFormat=URLLoaderDataFormat.BINARY;
bzloader.load(requestBz);
bzloader.addEventListener(Event.COMPLETE,loadSessionFinish);
this.x = this.parent.width / 2 - this.width / 2;
this.y = this.parent.height / 2 - this.height / 2;
this.width=0;
this.height=0;
*/
}
private function loadSessionFinish(event:Event):void
{
var BA:ByteArray = new ByteArray;
BA.writeBytes((event.target as URLLoader).data);
BA.position = 0;
var result:String=BA.readMultiByte(BA.length,"utf-8").replace("\r\n","");
var tempstr:String="false";
var i:int=0;
for(i;i<result.length;i++)
{
if(result.charAt(i) != tempstr.charAt(i))
{
this.IsLogin=true;
var val:Array=result.split("|");
UserMobile=val[1];
break;
}
}
if(this.IsLogin==false)
{
Alert.show("请您先登录!","提示信息",Alert.OK);
PopUpManager.removePopUp(this);
}
else
{
var requestBz:URLRequest=new URLRequest("http://diy.bonson.cn/soft/CLLBList.aspx");
var bzloader:URLLoader=new URLLoader();
bzloader.dataFormat=URLLoaderDataFormat.BINARY;
bzloader.load(requestBz);
bzloader.addEventListener(Event.COMPLETE,loadLbFinish);
this.width=250;
this.height=215;
}
}
private function loadLbFinish(event:Event):void
{
var BA:ByteArray = new ByteArray;
BA.writeBytes((event.target as URLLoader).data);
BA.position = 0;
var result:String=BA.readMultiByte(BA.length,"utf-8").replace("\r\n","");
var cllb:XML = XML(result);
var results:XMLList = cllb.children();
var array:Array = ElementToAttr(results);
xmlarray=ElementToAttr(results);
//this.ddl_cllb.labelField="typename";
//this.ddl_cllb.data=array["typevalue"];
this.ddl_cllb.dataProvider = array;
}
public function ElementToAttr(results:XMLList):Array
{
var array:Array=new Array();
for each(var child:XML in results)
{
var obj:Object=new Object();
//方法1:
/*
obj[child.nodeKind()]=child[child.nodeKind()];
for each(var ite:XML in child.children())
{
obj[ite.name().toString()]=child[ite.name().toString()];
}
*/
//方法2:
obj["label"]=child.typename;
obj["data"]=child.typevalue;
array.push(obj);
}
return array;
}
private function ddlchange():void
{
this.txt_mc.text=this.ddl_cllb.selectedLabel+"|"+String(this.ddl_cllb.value);
for(var i:int=0;i<xmlarray.length;i++)
{
this.txt_js.text+= xmlarray[i]["typename"]+"|"+xmlarray[i]["typevalue"]+"\r";
}
}
private function Upload():void
{
}
]]>
</mx:Script>
<mx:Label text="作品类型:" x="10" y="19"/>
<mx:Label text="彩铃名称:" x="10" y="65"/>
<mx:TextArea x="76" y="105" height="62" width="160" wordWrap="true" maxChars="200" id="txt_js"/>
<mx:Button label="返 回" click="PopUpManager.removePopUp(this);" horizontalCenter="48" verticalCenter="84"/>
<mx:Button label="上 传" click="Upload()" id="btn_upload" enabled="true" horizontalCenter="-50" verticalCenter="84"/>
<mx:TextInput x="76" y="63" width="160" editable="true" maxChars="50" id="txt_mc"/>
<mx:Label text="作品介绍:" x="10" y="125"/>
<mx:ComboBox x="76" y="16" id="ddl_cllb" change="ddlchange()" selectedIndex="0" editable="false"></mx:ComboBox>
</mx:Canvas>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)