`
alvinqq
  • 浏览: 185301 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Flex读取xml文件转换为ArrayCollection并转换成menuItem

    博客分类:
  • Flex
阅读更多
IndexMenu.xml

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <node name="资源系统">
        <leafNode id="1" name="项目库管理" level="2" menu_url="http://www.sina.com"/>
        <leafNode  id="2" name="规范库库管理" level="2" menu_url="" />
        <leafNode  id="3" name="仪器管理" level="2" menu_url=""/>
        <leafNode  id="4" name="药品管理" level="2" menu_url=""/>        
    </node>
    <node name="教学管理">
        <leafNode   name="用户管理模块" level="2" menu_url=""/>
        <leafNode  name="实验室教学辅助流程" level="2" menu_url=""/>
        <leafNode  name="实验项目选课" level="2" menu_url=""/>       
        <leafNode  name="网络课堂" level="2" menu_url=""/>
        <leafNode  name="内容管理模块" level="2" menu_url=""/>    
        <leafNode  name="网络交流" level="2" menu_url=""/>            
    </node>
    <node name="实验室管">
        <leafNode  name="资源预约" level="2" menu_url=""/>
        <leafNode  name="仪器赔偿" level="2" menu_url=""/>
        <leafNode  name="工作日志辅助管理" level="2" menu_url=""/>        
        <leafNode  name="财务辅助记录" level="2" menu_url=""/>        
    </node>
</root>

mainFrame.mxml

<mx:Application xmlns:mx               = "http://www.adobe.com/2006/mxml" >

 

<mx:HTTPService id           = "indexMenu" showBusyCursor = "true" 
                    method       = "POST"      url            = "xml/IndexMenu.xml" 
                    useProxy     = "false"     result         = "httpIndexMenuResult(event)" 
                    resultFormat = "e4x" />        

<mx:Script>
        <![CDATA[   

[Bindable]private var menuAC:ArrayCollection=new ArrayCollection();

public function init() : void
            {                  
                indexMenu.send();                              
                   
            }      

private function httpIndexMenuResult(event:ResultEvent):void
               {
                   var menuXml:XML=event.result as XML;
                    for (var i:int=0;i<menuXml.node.length();i++)
                    {
                        var obj:Object = new Object();
                        obj.name = menuXml.node[i].@name;
                        obj.level= "1";
                        menuAC.addItem(obj);
                        for (var j:int=0;j<menuXml.node[i].leafNode.length();j++)
                        {
                            var subObj:Object = new Object();  
                            subObj.name = menuXml.node[i].leafNode[j].@name;
                            subObj.level=menuXml.node[i].leafNode[j].@level;
                            subObj.menu_url=menuXml.node[i].leafNode[j].@menu_url; 
                            menuAC.addItem(subObj);
                        } 
                    }
                   
                   var nowVbox:VBox = new VBox();
                for(var k:int=0;k<menuAC.length;k++)
                {                        
                  var tempO:Object = menuAC.getItemAt(k);
                    if(tempO.level=="1")
                    {                                
                        var panel : Panel  = new Panel();                            
                        panel.percentWidth = 100 ;
                        panel.styleName = "leftPanelTemp" ;
                        panel.horizontalScrollPolicy = "off"
                        panel.verticalScrollPolicy   = "off"
                        
                        panel.title                  = tempO.name;                        
                        var vbox:VBox                 = new VBox();  
                        vbox.percentWidth = 100;
                        vbox.styleName = "leftVBox" ;                         
                        nowVbox                       = vbox;
                        
                        panel.addEventListener(MouseEvent.CLICK , MyEventDelegate.create(clickLeftMenu,panel)) ;                                
                        panel.height =25 ;                            
                        this.arrLeftPanel.push(panel) ;
                        panel.addChild(vbox);
                        this.leftVBox.addChild(panel);                                                             
                    }
                    else if(tempO.level=="2")
                    {                                    
                        var button:Button = new Button();                            
                        button.styleName  = "newButton";
                        button.label      = tempO.name;
                    //    button.id         = tempO.id;
                        button.width       = 125 ;                                
                        var obj:Object = new Object();                            
                        obj.menu_url   = tempO.menu_url;
                        
                        button.data = obj;  
                        nowVbox.addChild(button);  
                        if ( tempO.menu_url != null)
                        {
                            button.addEventListener(MouseEvent.CLICK, menuJumpTo);                                    
                        }                          
                    }
                }     
               }       

 public function menuJumpTo(event:MouseEvent):void
             {    
                var toUrl:String = (event.target as Button).data.menu_url;    
                navigateToURL(new  URLRequest(toUrl),"_blank");               
            }     

    ]]>
    </mx:Script>

<mx:Panel>

 <mx:VBox id="leftVBox" width="100%" height="100%" />

</mx:Panel>

</mx:Application>
分享到:
评论

相关推荐

    Flex读取xml文件几种方法

    在这个例子中,我们将XML文件中的`color`元素转换为了`ArrayCollection`类型,以便在Flex应用中使用。 #### 方法二:使用URLLoader读取XML文件 除了`HTTPService`外,`URLLoader`也是Flex中另一个常用的方法来读取...

    Flex:ArrayCollection转xml形式的实例

    在某些情况下,我们需要将ArrayCollection转换为XML格式,以便于数据交换或存储。本实例将详细介绍如何实现这一转换。 首先,我们来理解ArrayCollection的基本用法。ArrayCollection通常用于Flex或Flash项目,它...

    Flex Tree 通过Arraycollection转化为XML数据源,新增、删除、修改功能的整合

    本篇文章将聚焦于如何将ArrayCollection转换为XML数据源,并实现Flex Tree组件的新增、删除和修改功能。以下是详细的解释和步骤。 首先,ArrayCollection是Flex中常用的数据结构,它是一个动态数组,支持数据绑定和...

    flex外部读取xml

    在Flex编程中,读取XML文件是常见的数据交互方式,特别是在构建富互联网应用程序(RIA)时,用于存储和传输数据。本示例中,我们看到一个Flex应用通过使用ActionScript 3来从外部XML文件加载数据,并将这些数据用于...

    flex charts 图形集合实例(读取XML)

    4. **Object与XML/ArrayCollection转换**:为了将XML数据传递给图表,需要将其转换为ArrayCollection。ArrayCollection是Flash Player和Flex中常用的动态数组,适合作为数据绑定的目标。使用Object,我们可以遍历XML...

    Flex之URLLoader加载XML

    在本示例中,它被用来从服务器获取XML文件并将其内容解析为XML对象,以便在应用程序中使用。`Flex` 是Adobe开发的一个开放源代码框架,用于构建富互联网应用程序(RIAs)。在MXML文件中,我们可以看到如何结合...

    flex通过httpService读取xml数据到datagird中

    flex通过httpService读取xml数据到datagird中,通过读取远程URL的XML数据(这里保存到本地),保存到ArrayCollection中,然后在将ArrayCollection绑定到datagird上 环境:flex3.0 可直接运行

    flex-web工程载入tomcat下xml文件(含源码)

    在本文中,我们将深入探讨如何在Flex-web工程中加载Tomcat服务器下的XML文件。这个过程涉及到Flex编程、HTTP请求以及XML数据处理等多个知识点。首先,让我们解析标题和描述中的关键信息。 标题:“flex-web工程载入...

    Flex的Array和ArrayCollection

    Flex的Array和ArrayCollection

    Flex DataGrid从XML文件中加载数据

    本示例展示了如何从XML文件加载数据并将其显示在Flex DataGrid中。以下是对该话题的详细解释: 1. **XML数据源**:在示例中,数据存储在一个名为`user.xml`的外部XML文件中。XML是一种轻量级的、自描述的数据交换...

    FLEX操作XML&JSON

    3. **显示XML数据**:Flex的`&lt;mx:DataGrid&gt;`组件能方便地将XML数据展示成表格形式。通过设置`dataProvider`属性为XML数据,可以将XML节点映射到表格列。如`&lt;mx:DataGrid dataProvider="{xmlData..childNodeName}" /&gt;...

    flex DataGrid xml 动态数据列表实例

    2. **加载XML数据**:在Flex应用中,我们可以使用`XML`类加载并解析XML文件。例如: ```actionscript var urlLoader:URLLoader = new URLLoader(); urlLoader.dataFormat = URLLoaderDataFormat.TEXT; urlLoader....

    Flex Tree XML

    首先,我们需要加载XML文件,然后使用`XMLListCollection`将其转换为可以被Tree识别的数据结构。以下是一个简化的代码示例: ```actionscript var xmlLoader:URLLoader = new URLLoader(); xmlLoader.load(new ...

    how-to-read-a-local-xml-file-with-flex.pdf

    ### 如何使用Flex读取本地XML文件 ...通过以上步骤,我们成功地使用Flex读取了一个本地XML文件,并展示了如何处理文件中的数据。这种方法对于开发需要与XML文件交互的Flex应用程序非常实用。希望这篇教程对你有所帮助!

    flex导出csv文件

    3. **字符串转换**:在Flex中,你需要将数据模型中的每个对象转换为CSV字符串。这通常涉及遍历数据集,将每个对象的属性或值转化为逗号分隔的字符串。 4. **编码与换行**:确保正确处理特殊字符和换行符。CSV文件...

    Flex通过Java读取Excel(详细流程)

    接着,通过Blazeds将`ArrayList`转换为Flex所需的`ArrayCollection`,并发送给前端。最后,在Flex应用中,只需要将这个`ArrayCollection`绑定到DataGrid,即可展示Excel数据。 在给出的代码片段中,可以看到如何...

    Flex导入Excel文件的应用部分代码

    1. **文件读取**:在Flex中,可以使用Flash的FileReference类来与本地文件系统交互,让用户选择要导入的Excel文件。用户选择文件后,FileReference对象的load()方法会被调用,加载选定的文件内容。 2. **数据解析**...

    Flex导出excel文件例子

    在Flex Builder或IntelliJ IDEA等IDE中,你可以将SWC文件放入“libs”目录,并在项目设置中将其标记为库。 2. **准备数据**:在Flex应用中,数据通常存储在ArrayCollection或其他数据结构中。确保你的数据已经格式...

    flex datagrid 数据保存到excel以及从excel读取数据

    这个主题涉及到如何将Flex Datagrid中的数据保存到Excel文件,以及从Excel文件读取数据。在实际业务场景中,这样的功能常常用于数据导入导出,提高用户的工作效率。 首先,让我们了解一下Flex Datagrid的基本概念。...

    Flex CSV文件解析类

    - 循环读取:使用循环遍历CSV文件,每次读取一行,将数据存储到适当的数据结构中,如Array或ArrayCollection。 - 处理数据:根据业务需求,对读取的数据进行处理,如计算、转换或显示在UI上。 - 关闭流:在读取...

Global site tag (gtag.js) - Google Analytics