Переключение видов [Flash Builder 4.5 - Flex Mobile] - PullRequest
3 голосов
/ 23 августа 2011

Я пытаюсь создать приложение с представлением «Вход в систему» ​​(без вкладок), после того, как пользователь отправит «Вход в систему», оно переключится на другой основной вид (с вкладками). Возможно ли это?

В настоящее время я выбрал «Приложение с вкладками» под шаблоном приложения.
Чтобы скрыть панель вкладок, я попытался:

protected function view1_activateHandler(event:Event):void
        {
            // TODO Auto-generated method stub
            this.tabBarVisible = false;
        }

.. но при запуске приложения скрытие имеет анимацию скольжения (то есть скрыто не сразу)
Плюс, если переключиться на основной вид, кнопка «Вкладка входа» (которая принадлежит «Виду входа») появится на панели вкладок, которая мне не нужна.

Есть ли другой способ? Я довольно новичок в Flash Builder / Flex 4.5. Справка

Мне нужно 10 очков репутации, чтобы публиковать изображения =. = Извините, я хотел опубликовать скриншоты для лучшего понимания. Осталось еще 4 очка):

1 Ответ

5 голосов
/ 23 августа 2011

Вам следует установить для свойства 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 может быть отображен / скрыт по желанию.Я не пробовал использовать один запуск приложения для следующего, чтобы увидеть, как поддерживается состояние (т. Е. Если вы хотите иметь постоянный вход в систему, вы можете выполнить некоторую проверку в обработчике завершения создания, но это на васточка).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...