- 浏览: 18556 次
- 性别:
- 来自: 苏州
最新评论
直接上代码:
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" > <fx:Script> <![CDATA[ import mx.collections.XMLListCollection; import mx.controls.Alert; [Bindable] [Embed(source="images/open.png")] public var folderOpen:Class; [Bindable] [Embed(source="images/close.png")] public var folderClose:Class; [Bindable] [Embed(source="images/file.png")] public var fileInfo:Class; [Bindable] private var company:XML= <department> <department name="部门A"> <department name="小A" /> <department name="小B" /> </department> <department name="部门B"> <department name="小C"> <department name="abc"> <department name="efg"/> </department> <department name="opqr"/> <department name="小D"> <department name="ff"/> </department> </department> </department> </department>; [Bindable] private var companyData:XMLListCollection=new XMLListCollection(company.department); private function addNode():void { // 新建节点 var newNode:XML=<employee/>; newNode.@name=empName.text; // 添加节点 var xml:XML=XML(tree1.selectedItem); if (xml.length() > 0) { xml[0].appendChild(newNode); tree1.expandChildrenOf(tree1.selectedItem,true); } } private function removeNode():void { if (tree1.selectedItem != null) { var node:XML=XML(tree1.selectedItem); Alert.show("根节点不能删除!","[错误]"); //if(tree.dataDescriptor.root){ ///Alert.show("根节点不能删除!","[错误]"); //return; //} var nodeP:XML=node.parent(); var childrenList:XMLListCollection=new XMLListCollection(XMLList(nodeP).children()); var i:Number=childrenList.getItemIndex(node); childrenList.removeItemAt(i); if(childrenList.length == 0) tree1.selectedItem = nodeP; else{ if(i == childrenList.length) i = i - 1; tree1.selectedItem = childrenList.getItemAt(i) } }else{ Alert.show("请选中一个节点再进行删除!"); } } /* * 根据节点名字模糊查询 */ private function findNode(key:String):void { //descendants()返回除了根节点以外的所有节点,然后根据条件筛选符合条件的结果集 var list:XMLList = company.descendants().(@name.indexOf(key) != -1); expandParents(list[0]); tree1.selectedItem = list[0]; } /* * 展开 */ private function expandParents(xmlNode:XML):void { while (xmlNode.parent() != null) { xmlNode = xmlNode.parent(); tree1.expandItem(xmlNode,true, false); } } //展开所有 private function expandAll():void { tree1.expandChildrenOf(tree1.dataProvider[0],true); } //收起所有 private function closeAll():void { tree1.expandChildrenOf(tree1.dataProvider[0],false); } ]]> </fx:Script> <s:layout> <s:HorizontalLayout horizontalAlign="center" verticalAlign="middle"/> </s:layout> <s:Panel title="实现添加和删除节点" width="450" height="450" > <s:layout> <s:HorizontalLayout/> </s:layout> <mx:Tree id="tree1" dataProvider="{company}" labelField="@name" height="300" showRoot="false" width="260" defaultLeafIcon="{fileInfo}" folderOpenIcon="{folderOpen}" folderClosedIcon="{folderClose}" /> <mx:VBox> <s:Button label="展开所有" click="expandAll()"/> <s:Button label="关闭所有" click="closeAll()"/> <mx:Button label="删除节点" click="removeNode();"/> <mx:HBox> <s:TextInput id="empName" width="60" click="{empName.text = ''}" prompt="新节点名" /> <mx:Button label="添加节点" click="addNode();"/> </mx:HBox> <mx:HBox> <s:TextInput id="keyName" width="60" prompt="关键字"/> <mx:Button label="查找节点" click="findNode(keyName.text)"/> </mx:HBox> </mx:VBox> </s:Panel> </s:Application>
里面有设置展开和关闭和文件的图片
发表评论
-
Flex中用state来表示不同的状态的经典的例子
2012-03-20 21:06 624<?xml version="1.0" ... -
flex自定义组件的制作
2012-03-21 10:22 1163以登录组件为例,说明自定义组件的使用 1.首先新建一个组件, ... -
flex自定义无参数事件
2012-03-21 11:14 584自定义事件必须注意几点: (1)自定义事件通过继承Event ... -
flex有参数的自定义事件,数据验证测试
2012-03-21 12:05 968自定义带参数的事件应该明白: (1)自定义事件继承Even ... -
flex自定义右键菜单
2012-03-21 15:56 1273<?xml version="1.0" ... -
flex currenTarget与 target 的区别
2012-03-24 14:04 825开始学习Flex,会在别人 ... -
dataGrid过滤器查询和渲染器的使用
2012-03-26 09:19 1220以前没用过滤器,查询比较麻烦,需要遍历整个arrayColle ... -
Flex tree 双击展开收起节点,更改图标设置
2012-03-28 09:33 1365首先设置tree属性doubleClickEnabled=&q ... -
Flex tree 模糊查询节点,重复节点再次查询自动下一个
2012-03-29 10:55 1081//根据关键字 ... -
flex 在线帮助文档
2012-03-31 15:55 874flex 在线帮助文档: http://livedocs.a ... -
Flex设置form表单一些属性设置
2012-04-01 15:53 1423设置form表单label左对齐 ... -
一个小错误浪费了我时间
2012-05-02 20:02 628<mapper namespace="com. ... -
Flex 字幕滚动效果 网站公告效果
2012-05-07 14:17 1315这篇总结的不错 <?xml version ...
相关推荐
flex中利用tree中的子节点与自定义组件实现的在同一页面中实现导航
Flex Tree增加虚线连接,绘制虚线连接样式
flex tree 拖拽,flex tree 节点移动。
Flex Tree 刷新数据源后,重新打开指定节点的解决方案,不需要延迟等其他手段
项目开发中经常需要展开并选择滚动到特定节点,网上也有很多人发帖求方法,特写了一个满足该需要的demo,供参考。
flex tree+checkbox可实现级联勾选 修改后 修改CheckTreeDemoRenderer.as这个文件中 while (!cursor.afterLast){ if (cursor.current.@state == STATE_CHECKED) { noChecks++; }else if (cursor.current.@state =...
NULL 博文链接:https://zwnjava.iteye.com/blog/603835
有时候tree节点内容太长,就需要用toolTip来实现鼠标滑过时提示全部内容。用两种方式实现. 1.通过itemRollOver和itemRollOut,使用ToolTipManager自定义实现 2.树本身属性showDataTips,加了一些小优化。 ...
在原来flex的Tree组件上添加复选框CheckBox
NULL 博文链接:https://zenoh.iteye.com/blog/982263
tree动态数据源和搜索打开节点所有上级
DataGrid条目过滤和Tree 所有节点过滤的例子 Flash Builder 4工程,可直接导入
NULL 博文链接:https://tongqiuyan.iteye.com/blog/1219351
本例子实现了 Flex tree 节点的展开与收缩 , 可以展开所有节点,展开第一层节点,展开名为child5的节点,收缩所有节点
使用Tree组件在绑定数据后自动展开所有树型节点(不需要用户再自己点击展开节点,会方 便许多),接下来为大家介绍下具体的实现
拖拽Tree中结点的例子,学习flex 的树组件节点的拖拉动作
解析数据用了flex的JSON包。 这段代码放在要显示树的canvas下 rootLable="根节点" //树的根节点名 destination="flexService" //remoteObject 的destination remoteServer="true" id="asyntree1" ...
flex 树的添加,展开,删除.。
flex3的cookbook书籍完整版dpf(包含目录),目录是我花了两个多小时自己整理的,希望对大家有帮助。 目录: 第一章.Flex与ActionScript基础(3) 1.1节.用FlexBuilder创建Flex项目 1.2节.用FlexBuilder创建Flex库项目 ...
高级checkboxTree,支持过滤节点输入框 博文链接:https://kiral.iteye.com/blog/265706