当可绑定变量发生变化时,您可以使用 aChangeWatcher
来触发函数。在该函数中,根据变量的值添加或删除选项卡。
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="onCreationComplete()"
xmlns:local="*">
<fx:Script>
<![CDATA[
import mx.binding.utils.ChangeWatcher;
[Bindable]
public var showTab2:Boolean;
private var watcher:ChangeWatcher;
private function onCreationComplete():void
{
watcher=ChangeWatcher.watch(this, "showTab2", onValueChange);
}
private var _tab2:NavigatorContent;
public function get tab2():NavigatorContent
{
if (!_tab2)
{
_tab2=new NavigatorContent();
_tab2.label="tab2";
}
return _tab2;
}
private function onValueChange(event:Event):void
{
if (showTab2 && !tabNav.contains(tab2))
{
tabNav.addElement(_tab2);
}
else if (!showTab2 && tabNav.contains(tab2))
{
tabNav.removeChild(tab2);
}
}
]]>
</fx:Script>
<s:layout>
<s:VerticalLayout/>
</s:layout>
<mx:TabNavigator id="tabNav" width="300" height="300">
<s:NavigatorContent label="tab 1"/>
</mx:TabNavigator>
<s:Button label="Add/remove tab2" click="showTab2 = !showTab2"/>
</s:Application>