Flex 4.0 TabBar删除选项卡和内容

时间:2015-02-10 15:43:14

标签: actionscript-3 flex tabbar

我有一个TabBar,并且在CTRL + ALT +单击(在关闭按钮上),我想关闭所有选项卡,并删除它们的内容。

在每个标签的退出按钮上添加事件监听器:

    public static var CONTROL_PRESSED:Boolean = false;
    public static var ALT_PRESSED:Boolean = false;
this.tabBar.addEventListener(ChildExistenceChangedEvent.CHILD_ADD, function(event:ChildExistenceChangedEvent):void{
            var tab:SuperTab = SuperTab(event.relatedObject);
            tab.addEventListener(FlexEvent.CREATION_COMPLETE, function(event:FlexEvent):void{
                for(var i:int = 0; i < tab.numChildren; i+=1){
                    if(tab.getChildAt(i) is Button){
                        var exitButton:Button = Button(tab.getChildAt(i));

                        exitButton.addEventListener(MouseEvent.MOUSE_DOWN, function(event:MouseEvent):void{
                            if(event.altKey){
                                ALT_PRESSED = true;
                            }else{
                                ALT_PRESSED = false;
                            }
                            if(event.ctrlKey){
                                CONTROL_PRESSED = true;
                            }else{
                                CONTROL_PRESSED = false;
                            }
                        }, false, 1000);
                        model.tabExitButtonArray.push(exitButton);
                    }
                }
            });
        });

我试过了:

  1. 迭代退出按钮数组并在每个按钮上调度鼠标按下事件。这没什么。

    var customEventObject:MouseEvent = new MouseEvent("mouseDown");
    customEventObject.ctrlKey = true;
    customEventObject.altKey = true;
    for(var i:int = 0; i< model.tabExitButtonArray.length; i++){
        var b:Button = model.tabExitButtonArray[i];
        b.dispatchEvent(customEventObject);
    }
    
  2. 删除标签栏子元素,但它只删除标签

    model.tabBar.removeAllChildren();
    
  3. 更改标签栏选择的索引并按照我删除单个标签的方式删除每个标签。这将删除第一个当前选项卡。

            for(var i:int = 0; i< model.tabExitButtonArray.length; i++){
            model.tabBar.selectedIndex = i;
    
            Class.dispatchEvent(new CustomEvent(object, function));
        }
    
  4. 重置dataProvider并删除子项

        model.tabBar.removeAllChildren();
        model.tabBar.dataProvider = new Array();
    

0 个答案:

没有答案