событие щелчка элемента гибкого дерева, не работает - PullRequest
0 голосов
/ 19 октября 2010

Я создаю многократно используемый компонент гибкого дерева.И я хотел бы придерживаться функции itemclick.Так что, когда пользователь щелкает в любом месте на одной из ветвей дерева.ветвь расширяется.Моя проблема в том, что я не знаю, как заставить функцию слушателя срабатывать.То, что я хотел бы сделать, это создать дерево полностью в as3.(без mxml).Обычно я устанавливаю itemClick на дерево в mxml.но я хочу сделать это в as3.В моем компоненте намного больше функций, но я удалил их, чтобы их было легче читать.

Может кто-нибудь помочь мне с этим?Я подумал, что если я переопределю функцию createChilderen и добавлю туда обработчик событий, он будет работать.Но не повезло.

это мой код;

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 Ответ

2 голосов
/ 19 октября 2010
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");
    }

}
}
...