Flex - 如何获取Tree itemClick事件来模仿itemOpen事件?

时间:2009-02-18 10:08:58

标签: flex actionscript-3 events tree

我正在使用带有XMLListContainer dataProvider的Tree控件....我使用带有以下代码的itemOpen事件在打开树文件夹时更新另一个数据提供程序(使用小三角形) - 数据提供程序包含所有{ {1}}该特定树文件夹中的元素......

<slide />

如果打开第二个文件夹,则thumbDP更新正常,但是当单击第一个文件夹(或另一个关闭的文件夹)时,我希望发生相同的行为(目前您必须关闭并重新打开第一个文件夹)

所以我使用了一个itemClick事件 - 但是这会触发一个ListEvent,我无法弄清楚如何从XMLListContainer中获取子元素就好了......下面的代码抛出一个超出范围的异常

private function itemOpenEvent(event:TreeEvent):void {          
 slideDP = new XMLListCollection(event.item.elements("slide"));  
 slideDP.refresh();                     
}

有人可以帮忙吗?谢谢:))

1 个答案:

答案 0 :(得分:2)

我会更改您的事件侦听器以侦听更改事件,并使用树的selectedItem属性:

private function changeHandler(event:ListEvent):void
{                  
    slideDP = new XMLListCollection(tree.selectedItem.elements("slide"));

    slideDP.refresh();                           
}

您可能需要将selectedItem转换为XML或XMLList。