Вам следует установить для свойства tabBarVisible элемента view значение false, а затем изменить его после входа в систему следующим образом:
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
tabBarVisible="false"
title="My View" />
Если вы хотите отобразить представление, просто сделайте так, чтобы ваша функция показывала панель, установивthis.tabBarVisible to true.
public function loginHandler():void {
// Do login activities
this.tabBarVisible = true;
}
Вот что я упоминал в своем комментарии ...
Main.mxml:
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:components="components.*"
creationComplete="creationCompleteHandler(event)">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
private static var app:Main;
public static function login():void {
app.loginComponent.visible = false;
app.navigator.visible = true;
}
protected function creationCompleteHandler(event:FlexEvent):void {
app = this;
}
]]>
</fx:Script>
<components:LoginComponent id="loginComponent" left="0" right="0" top="0" bottom="0" />
<s:TabbedViewNavigator id="navigator" left="0" right="0" top="0" bottom="0" visible="false">
<s:ViewNavigator id="testView1" width="100%" height="100%" label="Test 1" firstView="views.TestView1" />
<s:ViewNavigator id="testView2" width="100%" height="100%" label="Test 2" firstView="views.TestView2" />
</s:TabbedViewNavigator>
Здесь я создал приложение по умолчанию, которое содержит простой компонент входа в систему следующим образом ...
LoginComponent.mxml:
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script>
<![CDATA[
protected function login(event:MouseEvent=null):void {
Main.login();
}
]]>
</fx:Script>
<s:VGroup left="0" right="0" top="0" bottom="0" horizontalAlign="center" horizontalCenter="0"
verticalAlign="middle" verticalCenter="0">
<s:HGroup left="0" right="0" height="75" horizontalAlign="left" verticalAlign="middle">
<s:Label text="User Name"/>
<s:Spacer width="10" height="10"/>
<s:TextInput id="usernameInput" width="200"/>
</s:HGroup>
<s:HGroup left="0" right="0" height="75" verticalAlign="middle">
<s:Label text="Password"/>
<s:Spacer width="18" height="10"/>
<s:TextInput id="passwordInput" width="200" displayAsPassword="true" enter="login()"/>
</s:HGroup>
<s:HGroup left="0" right="0" height="75" verticalAlign="middle" horizontalAlign="center" gap="20">
<s:Button label="Login" click="login(event)" id="btnLogin"/>
</s:HGroup>
</s:VGroup>
Это позволяет мне иметь экран входа, который я только что создал в компоненте и встроил в основное приложение в качестве экрана запуска, и TabbedViewNavigator может быть отображен / скрыт по желанию.Я не пробовал использовать один запуск приложения для следующего, чтобы увидеть, как поддерживается состояние (т. Е. Если вы хотите иметь постоянный вход в систему, вы можете выполнить некоторую проверку в обработчике завершения создания, но это на васточка).