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>
posted @   94cool  阅读(578)  评论(0编辑  收藏  举报
编辑推荐:
· 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)
< 2009年8月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示