很好用的flex树形选择器
树形菜单选择,带checkbox复选框的选择器
选择/取消 子菜单可更改父菜单的状态
这里的checkbox有三种状态
选中(打钩)、未选(空白)、子菜单有选中的但未全部选中(灰色填充)
效果如图
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:controls="it.sephiroth.controls.*">
<mx:Style>
Application {
font-size: 12px;
}
</mx:Style>
<mx:Script>
<![CDATA[
import it.sephiroth.renderers.TreecheckboxItemRenderer;
import mx.events.TreeEvent;
[Bindable]private var xml:XML =
<node name="菜单" isSelect="0">
<node name="菜单1" isSelect="0">
<node name="菜单11" isSelect="0"></node>
<node name="菜单12" isSelect="0">
<node name="菜单121" isSelect="0"></node>
<node name="菜单122" isSelect="0"></node>
<node name="菜单123" isSelect="0"></node>
</node>
<node name="菜单13" isSelect="0"></node>
</node>
<node name="菜单2" isSelect="0"></node>
<node name="菜单3" isSelect="0"></node>
<node name="菜单4" isSelect="0"></node>
</node>;
/**
* Called on checkbox click
* check and update for both parents and child nodes
* according to the checkbox status
*/
private function onItemCheck( event: TreeEvent ): void
{
updateParents( event.item as XML, ( event.itemRenderer as TreecheckboxItemRenderer ).checkBox.checkState );
updateChilds( event.item as XML, ( event.itemRenderer as TreecheckboxItemRenderer ).checkBox.checkState );
}
/**
* @see it.sephiroth.controls.CheckBoxExtended#checkState
*
*/
private function updateChilds( item:XML, value: uint ):void
{
var middle: Boolean = ( value & 2 << 1 ) == ( 2 << 1 );
var selected: Boolean = ( value & 1 << 1 ) == ( 1 << 1 );
if( item.children( ).length( ) > 0 && !middle )
{
for each(var x: XML in item.node )
{
x.@isSelect = value == ( 1 << 1 | 2 << 1 ) ? "2" : value == ( 1 << 1 ) ? "1" : "0";
updateChilds( x, value );
}
}
}
private function updateParents( item: XML, value: uint ): void
{
var checkValue: String = ( value == ( 1 << 1 | 2 << 1 ) ? "2" : value == ( 1 << 1 ) ? "1" : "0" );
var parentNode: XML = item.parent( );
if( parentNode )
{
for each(var x: XML in parentNode.node )
{
if( x.@isSelect != checkValue )
{
checkValue = "2"
}
}
parentNode.@isSelect = checkValue;
updateParents( parentNode, value );
}
}
]]>
</mx:Script>
<controls:TreeCheckBox id="myTree" width="98%" height="98%" labelField="@name" checkField="@isSelect"
itemCheck="{onItemCheck( event )}" dataProvider="{xml}" openItems="{xml.node}"/>
</mx:Application>
- 大小: 11.1 KB
分享到:
相关推荐
WinDbg是一款强大的微软调试工具,它主要用于对Windows操作系统下的应用程序进行调试,无论是用户模式还是内核模式,WinDbg都能提供深入的诊断支持。CHM(Compiled Help Manual)是微软开发的帮助文档格式,通常包含...
描述中的“好东西拿出来分享,非常有用,REC中文合集打包下载”提示我们这个压缩包包含的资源可能是中文版的RFC文档集合,对于理解和学习网络协议和技术有着很高的价值。"REC中文合集"可能是指这些文档是以中文编写...
Project_教程——从入门到精通,好用易懂,把好东西拿出来分享
封装了大多数nlp项目中常用工具,分词必备jar包,好东西拿出来分享
《COM技术内幕(PDF)》,好东西拿出来分享了!!!!!!
做GPS高精密数据的处理的好东西,我拿出来给大家分享一下
里面的都是实例,东西丰富,不看拉到,小心会后悔的哦!
尽管这款软件是英文版本,但它依然具有极高的易用性和功能性,被誉为‘好东西’,为用户提供了一流的截图体验。" 【标签】: "非常好"、"截图"、"工具" 【正文】: 在信息技术日益发达的今天,截图工具已经成为了...
经典电子商务解决方案,好东西拿出来给大家分享
好东西拿出来大家分享,可以用做多文件上传的组建
珍藏的好东西拿来分享.大家抓紧试试吧.本人用过很多类型的软件 这个最实用
很不错的一款仓库管理软件,好东西就要拿出来分享
全国各地著名知名景点均包含在内,找了很久才发现的好东西,拿出来分享,希望大家喜欢哦
好东西,nokia论坛现在好像没有了。拿出来分享
7. **课堂管理**:教师提醒学生在上课期间专注于学习,不将个人物品拿出来玩耍,确保课堂纪律,同时强调分享的魔法石(礼物)是对良好分享行为的奖励,以此激励学生积极参与分享活动。 8. **情感教育**:本课内容...
好东西,nokia论坛现在好像没有了。拿出来分享
好用的android手势密码,好东西要拿出来分享,做一个好的搬运工。
《数据结构算法:Visual C++6.0程序集》,好东西,拿出来分享下
本文是我积存多年的好东西,拿出来与大家分享!
数论导引,数学大师华罗庚先生的著作;数论方面的经典教材,好东西,拿出来分享。