flex tree itemclick事件,不起作用

时间:2010-10-19 12:47:55

标签: flex actionscript-3 flex3 tree flex4

我正在创建一个可重用的flex树组件。我想坚持使用itemclick功能。这样当用户点击其中一个树的分支上的任何位置时。分支扩大。 我的问题是我不知道如何才能触发侦听器功能。 我想要做的是完全在as3中创建树。 (没有mxml)。 通常我在mxml中设置itemClick on tree。但我想在as3中这样做。 我的组件中有更多的功能,但我删除了它们,以便更容易阅读。

任何人都可以帮我解决这个问题吗?我想如果我覆盖createChilderen函数并在那里添加eventlistener,它会起作用。但没有运气。

这是我的代码;

package 
{

    import mx.controls.Tree;
    import mx.controls.listClasses.IListItemRenderer;
    import mx.events.ItemClickEvent;
    import mx.events.ListEvent;

    public class MyTree extends Tree
    {


        public function MyTree()
        {
            super();

        }

        private function tree_itemClick(evt:ListEvent):void {
            var item:Object = Tree(evt.currentTarget).selectedItem;
            if (dataDescriptor.isBranch(item)) {
                expandItem(item, !isItemOpen(item), true);
            }
        }

        override protected function createChildren():void{
            super.createChildren();
            addEventListener(ListEvent.ITEM_CLICK, tree_itemClick, true);
        }

    }
}

1 个答案:

答案 0 :(得分:2)

package
{
import mx.controls.Tree;
import mx.events.ListEvent;

public class MyTree extends Tree
{
    public function MyTree()
    {
        super();

        addEventListener(ListEvent.ITEM_CLICK, itemClickHandler);
    }

    private function itemClickHandler(event:ListEvent):void
    {
        trace("Success");
    }

}
}