Flex Tree 组件使用的两个小技巧

本文介绍使用Flex中的树组件时遇到的两个常见问题及其解决方案:点击非叶子节点时自动展开或关闭子节点,以及重复点击同一节点时不触发change事件。通过简单的代码修改即可实现所需功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习了一段时间的Flex,感觉Flex再成熟一些的话,Flex就很有可能成为视图层的最主流技术了.期待着Flex4,Flex5的改进吧.
这篇短文说一下使用Flex中树组件过程中两个使用小技巧吧.
可能刚刚学习的朋友会发现树组件的以下两个小问题:
[list]
[*]点击一个非叶子节点的时候,Tree组件不自动的展开或关闭他的子节点.
[*]点击同一个节点第二次的时候change事件是不触发的.
[/list]下边的小例子解决这两个小问题:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" borderStyle="none" cornerRadius="0">

<mx:XMLList id="treeData">
<node id="10000" label="评估计划">
<node id="10100" label="计划生成器">
<node id="10101" label="新建计划" canvas="javaest.FirstCanvas"/>
<node id="10102" label="复制计划" canvas="javaest.SecondCanvas"/>
</node>
<node id="10200" label="计划管理">
<node id="10201" label="将计划转为准备运行" canvas="javaest.GetProductList"/>
<node id="10202" label="将计划转为正在配置" canvas="javaest.SecondCanvas"/>
<node id="10203" label="查询计划状态" canvas="javaest.FirstCanvas"/>
</node>
<node id="10300" label="我的博客">
<node id="10301" label="北边村人" canvas="javaest.iteye.com"/>

</node>
</node>
</mx:XMLList>

<mx:Script>
<![CDATA[
import mx.controls.Image;
import mx.controls.Button;
import mx.containers.Canvas;
import mx.controls.Alert;
private function addNewTabPage(event:Event):void {
var selectedNode:XML=Tree(event.target).selectedItem as XML;
var id:String=selectedNode.@id;
var label:String=selectedNode.@label;
var canvasClassName:String=selectedNode.@canvas;
Alert.show(label);
if (functionTree.dataDescriptor.isBranch(selectedNode)) {
functionTree.expandItem(selectedNode, !functionTree.isItemOpen(selectedNode));
}
Tree(event.target).selectedItem=null;
}

]]>
</mx:Script>
<mx:Panel width="100%" height="100%" dropShadowEnabled="false" title="新闻管理">
<mx:Tree id="functionTree" change="addNewTabPage(event)" width="100%" height="100%" enabled="true" showRoot="true" dataProvider="{treeData}" labelField="@label" borderStyle="none">
</mx:Tree>
</mx:Panel>
</mx:Application>

其中34,35,36行解决了第一个问题
37解决了第二个问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值