Flex ComboBox 加载xml数据

简介:


xml数据:
<?xml version="1.0" encoding="utf-8" ?>
- < cllblist >
- < cllb >
< typename > 翻唱彩铃 </ typename >
< typevalue > 1 </ typevalue >
</ cllb >
- < cllb >
< typename > 原创彩铃 </ typename >
< typevalue > 2 </ typevalue >
</ cllb >
- < cllb >
< typename > 搞笑彩铃 </ typename >
< typevalue > 3 </ typevalue >
</ cllb >
- < cllb >
< typename > 节日问候 </ typename >
< typevalue > 4 </ typevalue >
</ cllb >
- < cllb >
< typename > 童声童趣 </ typename >
< typevalue > 5 </ typevalue >
</ cllb >
- < 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>



本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/archive/2009/08/25/1553467.html,如需转载请自行联系原作者

相关文章
|
8天前
|
XML 数据格式
加载 XML 字符串
这段代码展示了在不同浏览器环境下加载和解析XML字符串的方法。对于非IE浏览器,它使用DOMParser创建一个新的解析器实例,然后调用parseFromString方法。而在IE中,则通过ActiveXObject创建“Microsoft.XMLDOM”对象,使用loadXML方法进行解析。注意两种方法都接受XML字符串作为参数。
|
4天前
|
XML 数据格式
加载 XML 字符串
这段代码展示了如何在不同浏览器中加载和解析XML字符串。对于非IE浏览器,它使用`DOMParser`的`parseFromString`方法;而对于IE浏览器,它利用`ActiveXObject`和`loadXML`方法。注意,IE中`async`属性需设置为`false`。此差异源于各浏览器对XML解析的不同实现。
|
6天前
|
XML 数据格式
加载 XML 字符串
这段代码展示了在不同浏览器中加载和解析XML字符串的方法。对于非IE浏览器,它使用DOMParser创建一个新的解析器实例,然后调用parseFromString方法。而在IE中,则通过ActiveXObject创建“Microsoft.XMLDOM”对象,设置async为false,再使用loadXML方法加载XML字符串。
|
5天前
|
XML 数据格式
加载 XML 字符串
这段代码展示了在不同浏览器中加载和解析XML字符串的方法。对于支持DOMParser的浏览器(如非IE),它创建一个新的DOMParser对象,然后使用parseFromString方法解析XML。而在Internet Explorer中,它创建一个ActiveXObject实例,通过async=false同步加载XML,并使用loadXML方法进行解析。
|
10天前
|
XML 数据格式
加载 XML 字符串
这段代码展示了在不同浏览器环境下加载和解析XML字符串的方法。对于非IE浏览器,它使用DOMParser创建一个新的解析器,然后调用parseFromString方法。而在IE中,则通过ActiveXObject创建“Microsoft.XMLDOM”对象,使用loadXML方法进行解析。
|
13天前
|
XML 数据格式
加载 XML 字符串
这段代码展示了在不同浏览器环境下加载和解析XML字符串的方法。对于非IE浏览器,它使用DOMParser创建一个新的解析器,然后调用parseFromString方法。而在IE中,则通过ActiveXObject创建“Microsoft.XMLDOM”对象,使用loadXML方法进行解析。
|
2天前
|
XML 数据格式
加载 XML 字符串
This code snippet loads and parses an XML string using different methods for IE and other browsers. In modern browsers, it utilizes the `DOMParser` object via `parseFromString()` method. For Internet Explorer, it uses the `Microsoft.XMLDOM` ActiveXObject and calls `loadXML()`.
|
7天前
|
XML 数据格式
加载 XML 字符串
这段代码展示了如何在不同浏览器中加载和解析XML字符串。对于非IE浏览器,它使用`DOMParser`的`parseFromString`方法;而对于IE浏览器,它利用`ActiveXObject`和`loadXML`方法。注意,IE中`async`属性需设置为`false`。此差异源于各浏览器对XML解析的不同实现。
|
18天前
|
XML 数据格式
加载 XML 字符串
这段代码展示了在不同浏览器中加载和解析XML字符串的方法。对于非IE浏览器,它使用DOMParser对象,如`parser.parseFromString(text,&quot;text/xml&quot;)`;而对于IE,代码则创建`ActiveXObject(&quot;Microsoft.XMLDOM&quot;)`并调用`loadXML(text)`进行解析。