实现功能:
1.由外部参数flashvars指定数据源的文件位置或render链接.
2.在源数据上加href和target属性来控制打开窗口.
3.可自定义父节点和子节点图标,不设置采用系统默认
.

直接上源码:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" fontFamily="simsun" fontSize="12" layout="absolute" creationComplete="menu.send();" width="242" height="442" initialize="init()">
<mx:Script><![CDATA[import mx.controls.Alert;import mx.events.ListEvent;import mx.collections.ArrayCollection;import mx.rpc.events.ResultEvent;[Bindable]private var strUrl:String = "TreeMenus.xml";[Bindable]private var menus:XML;[Bindable][Embed("open.gif")]public var openicon:Class;[Bindable][Embed("close.gif")]public var closeicon:Class;[Bindable][Embed("leaf.gif")]public var leaficon:Class;private function init():void{this.strUrl = this.parameters.url;}private function LoadMenu(event:ResultEvent):void{menus = XML(event.result);var results:XMLList = menus.node;tree1.dataProvider = results;}//菜单图标设置private function treeIcon(item:Object):Class{var node:XML = XML(item);trace('icon:' + node.@icon);var str : String = node.@icon;//已经设置图标if(node.hasOwnProperty("@icon")){if(node.@icon == 'openicon'){return openicon;}if(node.@icon == 'closeicon'){return closeicon;}if(node.@icon == 'leaficon'){return leaficon;}}else{//如果没定义icon就直接用默认的                       if(!tree1.dataDescriptor.isBranch(item)){return tree1.getStyle("defaultLeafIcon");}if(tree1.isItemOpen(item)){return tree1.getStyle("folderOpenIcon");}else{return tree1.getStyle("folderClosedIcon");}}return null;}/*** 菜单树单项点击事件* */private function itemClickHandler(evt:ListEvent):void{var item:Object = Tree(evt.currentTarget).selectedItem;if (tree1.dataDescriptor.isBranch(item)) {//tree1.expandItem(item, !groupTree.isItemOpen(item), true);}else{//得到节点对象var node:XML = XML(item);//如果有属性hrefif(node.hasOwnProperty("@href") && node.hasOwnProperty("@target")){openURL(node.@href,node.@target);}if(node.hasOwnProperty("@href") && (node.hasOwnProperty("@target") == false)){//没有指定target默认在新窗口中打开openURL(node.@href,"_blank");}}}//页面跳转的方法 private function openURL(url:String ,target:String):void{var request:URLRequest = new URLRequest(url); navigateToURL(request,target);}]]>
</mx:Script><mx:HTTPService url="{strUrl}" id="menu" useProxy="false" showBusyCursor="true" result="LoadMenu(event)" resultFormat="xml"/><mx:Tree iconFunction="treeIcon" id="tree1" width="100%" height="100%" labelField="@label"  itemClick="itemClickHandler(event)"/>
</mx:Application>

调用的时候在flashvars里面加上url=xxx

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"id="tree" width="242" height="442"codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"><param name="movie" value="${ctx}/js/as/menu.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#869ca7" /><param name="allowScriptAccess" value="sameDomain" /><!-- 指定菜单的数据源 --><param name="flashvars" value="url=${ctx}/user/user!renderMenu.do?id=${user.usid}" /><embed src="tree.swf" quality="high" bgcolor="#869ca7"width="242" height="442" name="tree" align="middle"play="true"loop="false"quality="high"allowScriptAccess="sameDomain"type="application/x-shockwave-flash"pluginspage="http://www.adobe.com/go/getflashplayer"></embed></object>
其中url可以指定xml文件的位置或者render的链接
示例文件xml:
<?xml version='1.0' encoding='utf-8'?>
<menus><node label='系统管理' icon="openicon"><node label='用户管理' icon="closeicon"href='/main/user/user-list.jsp' target='mainFrame' /><node label='权限管理' href='/main/user/action-list.jsp'target='mainFrame' /><node label='角色管理' href='/main/user/role-list.jsp'target='mainFrame' /><node label='域管理' href='/main/user/user-list.jsp'target='mainFrame' /><node label='测试'><node label='sub folder' href='' target='mainFrame' /></node></node><node label='客服'><node label='终端信息查询' href='' target='mainFrame' /><node label='客服问题-解答记录' href='' target='mainFrame' /></node>
</menus>

源码下载

Flex 基于数据源的Menu Tree相关推荐

  1. ASP.NET 3.5核心编程学习笔记(17):基于数据源的数据绑定

    从总体上讲,ASP.NET数据绑定模型可以分为三部分:数据绑定表达.传统数据源.数据源控件. 可用的数据源 在ASP.NET中,任何一个暴露IEnumerable接口的对象,都是有效的可绑定数据源.I ...

  2. easyui menu tree 实现左侧菜单树

    1.首先引入easyui 相关js和样式. 2.构建树     <ul id="tree" class="easyui-tree"></ul& ...

  3. flex基于svn协同开发

    想做一个游戏,正好有人陪我做.于是想到用flex来协同开发.本来是想使用cvs,可是结果捣鼓了半天,也没个结果--估计是最近没怎么看电影,IQ降下来了.于是改用svn. 参考资料:http://www ...

  4. Python实现基于HDFS的云盘系统

    Python实现基于HDFS的云盘系统 一.云盘系统 二.功能需求 2.1.用户管理 2.2.文件管理 2.3.界面设计 三.用户代码 3.1 用户登录 3.2 用户注册 3.3 用户退出 四.文件代 ...

  5. 远程桌面监控系统java_基于Java的远程桌面监控源代码

    <基于Java的远程桌面监控源代码>由会员分享,可在线阅读,更多相关<基于Java的远程桌面监控源代码(43页珍藏版)>请在人人文库网上搜索. 1.基于Java的远程桌面监控源 ...

  6. easyUI tree 异步加载数据

    easyUI 的 Tree组件在大部分时候都要从数据库读取数据,本文基于Java语言来实现easyUI tree的异步加载. 先看一下实现的效果: 整个过程采用的是简单三层架构,无论采用哪种模式,只要 ...

  7. 推荐60+ Flex开发参考网站

    推荐60+ Flex开发参考网站 下面是一些好的Flex开发的网站或者Flex资源,如果你使用Flex开发,可以参考一下. 网上找的,可以参考参考!呵呵 新手入门参考: Adobe Flex 3 - ...

  8. 重磅 | 周志华最新论文:首个基于决策树集成的自动编码器,表现优于DNN

    向AI转型的程序员都关注了这个号☝☝☝ 翻译 | AI科技大本营(rgznai100) 参与 | 周翔.reason_W成龙,Shawn 今年 2 月,南京大学的周志华教授和他的学生 Ji Feng ...

  9. 系列 《使用sklearn进行集成学习——理论》 《使用sklearn进行集成学习——实践》 目录 1 Random Forest和Gradient Tree Boosting参数详解 2 如何调参?

    系列 <使用sklearn进行集成学习--理论> <使用sklearn进行集成学习--实践> 目录 1 Random Forest和Gradient Tree Boosting ...

最新文章

  1. IOS TableView的Cell高度自适应,UILabel自动换行适应
  2. Elasticsearch 2.0以上版本根据条件批量删除Java如何实现
  3. jquery datatable的详细用法
  4. 2012-01-09_1
  5. [转载] python字符串分割
  6. IIS 10 安装URLRewrite组件 方式
  7. 关于WCDMA中的扩频和调制(更新中)
  8. 如何安装PDF打印机
  9. 高级维修电工实训装置
  10. linux系统电视u盘安装教程,linux系统U盘安装教程
  11. 阿里云:疫情期间全力保障教育平台“停课不停学”
  12. Sleepy Cow Sorting(树状数组)
  13. Python模拟手机充值案例程序实现代码
  14. 智飞生物与碧迪医疗战略合作;奥的斯智慧服务实验室完成升级 | 美通企业日报
  15. 心物各东西:基因,文化和心灵
  16. indesign如何画弧线_InDesign钢笔工具怎么使用
  17. 【渝粤题库】广东开放大学 形成性考核 - 副本 (11)
  18. 用51单片机(STC89C52RC、STC12C5A60S2、STC15W104)驱动MzLH03-12864液晶显示模块
  19. 电大网考计算机基础知识,2017年电大计算机网考试题及答案
  20. 第4天:C语言与画面显示的练习

热门文章

  1. linux用户limit修改,linux – 使用cgroups作为用户设置用户创建的systemd范围的MemoryLimit...
  2. 超牛逼!20个开箱即用的 Shell 脚本,拿好了~
  3. 工作中遇到的问题——数据库
  4. 将提取出的yuv三个分量序列合并成一个完整的彩色yuv序列(matlab实现)
  5. 新建的邮件服务器只能发件不能收件_49. Django 2.1.7 使用内置函数发送邮件
  6. 计算机教师专业要求,计算机专业教师技能达标要求
  7. Keras及其前端配置
  8. 给服务器mongodb设置权限_认识 MongoDB
  9. hashmap.clear会不会失败_每日三省吾身 | 试问:现在的你,还害怕失败吗?
  10. DE 31 Non-linear Autonomous Systems