加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex 基于数据源的Menu Tree

发布时间:2020-12-15 04:29:26 所属栏目:百科 来源:网络整理
导读:实现功能:? 1.由外部参数flashvars指定数据源的文件位置或render链接. 2.在源数据上加href和target属性来控制打开窗口. 3.可自定义父节点和子节点图标,不设置采用系统默认 . 直接上源码: [html] ? view plain copy ? xml ? version = "1.0" ? encoding = "ut

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


直接上源码:

[html]? view plain copy
  1. <?xml?version="1.0"?encoding="utf-8"?>??
  2. <mx:Application?xmlns:mx="http://www.adobe.com/2006/mxml"???
  3. ?????fontFamily="simsun"?fontSize="12"???
  4. ?????layout="absolute"?creationComplete="menu.send();"?width="242"?height="442"?initialize="init()">??
  5. mx:Script>??
  6. ????<![CDATA[?
  7. ????????import?mx.controls.Alert;?
  8. ????????import?mx.events.ListEvent;?
  9. ?????????import?mx.collections.ArrayCollection;?
  10. ?????????import?mx.rpc.events.ResultEvent;?
  11. ?
  12. ?????????[Bindable]?
  13. ?????????private?var?strUrl:String?=?"TreeMenus.xml";?
  14. ??????????
  15. ?????????[Bindable]?
  16. ?????????private?var?menus:XML;?
  17. ??????????
  18. ?????????[Embed("open.gif")]?
  19. ?????????public?var?openicon:Class;?
  20. ??????????[Bindable]?
  21. ??????????[Embed("close.gif")]?
  22. ?????????public?var?closeicon:Class;?
  23. ??????????[Embed("leaf.gif")]?
  24. ?????????public?var?leaficon:Class;?
  25. ?????????private?function?init():void?
  26. ?????????{?
  27. ??????????????this.strUrl?=?this.parameters.url;?
  28. ?????????}?
  29. ?????????private?function?LoadMenu(event:ResultEvent):void?
  30. ?????????{?
  31. ?????????????menus?=?XML(event.result);?
  32. ?????????????var?results:XMLList?=?menus.node;?
  33. ?????????????tree1.dataProvider?=?results;?
  34. ?????????}?
  35. ?????????//菜单图标设置?
  36. ?????????private?function?treeIcon(item:Object):Class?
  37. ??????????????
  38. ??????????????var?node:XML?=?XML(item);?
  39. ??????????????trace('icon:'?+?node.@icon);?
  40. ??????????????var?str?:?String?=?node.@icon;?
  41. ??????????????//已经设置图标?
  42. ??????????????if(node.hasOwnProperty("@icon"))?
  43. ??????????????{?
  44. ??????????????????if(node.@icon?==?'openicon')?
  45. ??????????????????{?
  46. ????????????????????????return?openicon;?
  47. ??????????????????}?
  48. ??????????????????if(node.@icon?==?'closeicon')?
  49. ????????????????????????return?closeicon;?
  50. ??????????????????if(node.@icon?==?'leaficon')?
  51. ????????????????????????return?leaficon;?
  52. ??????????????}?
  53. ??????????????else?
  54. ??????????????{?
  55. ????????????????//如果没定义icon就直接用默认的 ???????????????????????
  56. ??????????????????if(!tree1.dataDescriptor.isBranch(item))?
  57. ??????????????????????return?tree1.getStyle("defaultLeafIcon");?
  58. ????????????????}?
  59. ????????????????if(tree1.isItemOpen(item))?
  60. ????????????????{?
  61. ??????????????????????return?tree1.getStyle("folderOpenIcon");?
  62. ????????????????else?
  63. ????????????????????return?tree1.getStyle("folderClosedIcon");?
  64. ??????????????return?null;?
  65. ????????}?
  66. ?????????
  67. ?????????/**?
  68. ?????????*?菜单树单项点击事件?
  69. ?????????*?*/?
  70. ?????????private?function?itemClickHandler(evt:ListEvent):void?
  71. ???????????{?
  72. ????????????????var?item:Object?=?Tree(evt.currentTarget).selectedItem;?
  73. ????????????????if?(tree1.dataDescriptor.isBranch(item))??
  74. ???????????????????//tree1.expandItem(item,?!groupTree.isItemOpen(item),?true);?
  75. ????????????????????//得到节点对象?
  76. ????????????????????var?node:XML?=?XML(item);?
  77. ????????????????????//如果有属性href?
  78. ????????????????????if(node.hasOwnProperty("@href")?&&?node.hasOwnProperty("@target"))?
  79. ????????????????????{?
  80. ????????????????????????openURL(node.@href,node.@target);?
  81. ????????????????????}?
  82. ????????????????????if(node.hasOwnProperty("@href")?&&?(node.hasOwnProperty("@target")?==?false))?
  83. ????????????????????????//没有指定target默认在新窗口中打开?
  84. ?
  85. ????????????????????}?
  86. ????????????????}?
  87. ??????????}?
  88. ??????????????
  89. ?????????//页面跳转的方法 ?
  90. ??????????private?function?openURL(url:String?,target:String):void?
  91. ??????????{?
  92. ?????????????var?request:URLRequest?=?new?URLRequest(url);??
  93. ?????????????navigateToURL(request,target);?
  94. ??????????}?
  95. ????]]>??
  96. </ ????mx:HTTPService?url="{strUrl}"?id="menu"?useProxy="false"???
  97. ?????????showBusyCursor="true"?result="LoadMenu(event)"?resultFormat="xml"/>??
  98. mx:Tree?iconFunction="treeIcon"?id="tree1"?width="100%"?height="100%"?labelField="@label"??itemClick="itemClickHandler(event)"/>??
  99. mx:Application>??

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

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


源码下载

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读