我有一个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);
}
}
});
});
我试过了:
迭代退出按钮数组并在每个按钮上调度鼠标按下事件。这没什么。
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);
}
删除标签栏子元素,但它只删除标签
model.tabBar.removeAllChildren();
更改标签栏选择的索引并按照我删除单个标签的方式删除每个标签。这将删除第一个当前选项卡。
for(var i:int = 0; i< model.tabExitButtonArray.length; i++){
model.tabBar.selectedIndex = i;
Class.dispatchEvent(new CustomEvent(object, function));
}
重置dataProvider并删除子项
model.tabBar.removeAllChildren();
model.tabBar.dataProvider = new Array();