簡體   English   中英

彈性樹itemclick事件,不起作用

[英]flex tree itemclick event, doesn't work

我正在創建一個可重用的flex樹組件。 我想堅持使用itemclick函數。 這樣,當用戶單擊樹的一個分支上的任意位置時。 分支擴展。 我的問題是我不知道如何啟動監聽器功能。 我想做的是完全在as3中創建樹。 (沒有mxml)。 通常,我在mxml中將itemClick設置在樹上。 但是我想在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);
        }

    }
}
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");
    }

}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM