2011-08-23 3 views
3

사용자가 로그인보기 (탭 없음)를 사용하여 앱을 작성하려고 할 때 사용자가 "로그인"을 제출하면 탭이있는 다른 기본보기로 전환됩니다. 이것이 가능한가?

전환보기 [플래시 빌더 4.5 - 플렉스 모바일]

현재 응용 프로그램 템플릿에서 "탭 응용 프로그램"을 선택했습니다.
는 탭 표시 줄은 내가 노력 숨겨진 만들려면 : 숨기기 ..하지만

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

앱 실행시 슬라이드 다운 애니메이션을 가지고 (의미를 그 즉시 숨겨지지)
플러스 메인으로 전환하는 경우 보기에서 Login Tab (LoginView에 속함) 단추는 원하지 않는 탭 막대에 있습니다.

다른 방법이 있습니까? 저는 Flash Builder/Flex 4.5를 처음 사용했습니다. 도움말

이미지를 게시하려면 10 개의 평판 포인트가 필요합니다. =. = 죄송합니다. 더 나은 이해를 위해 스크린 샷을 게시하고 싶습니다. 갈 4 점 이상) :

답변

5

false로보기 요소의 tabBarVisible 속성을 설정 한 후 다음과 같이 로그인 후 변경해야합니다 단지가,

<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을 true로 설정하여 표시 줄을 표시합니다.

<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> 

은 내가 여기했던 것은 기본을 만들 수 있습니다 : 여기

public function loginHandler():void { 
    // Do login activities 
    this.tabBarVisible = true; 
} 

... 난 내 의견에 언급 된 어떤

Main.mxml입니다 다음과 같이 간단한 로그인 구성 요소가 포함 된 응용 프로그램 ...

LoginComponent.mxml :이 날 난 그냥 구성 요소에서 생성하고 시작 화면과 주요 응용 프로그램에 포함하고 TabbedViewNavigator를 표시 할 수 있습니다했습니다있는 로그인 화면을 가지고 있습니다

<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> 

/의지에 숨어있다. 하나의 앱 실행에서 다음 상태로 상태를 유지하는 방법을 사용하려고 시도하지 않았습니다. 즉, 영구 로그인을 원한다면 생성 완료 처리기에서 일부 확인을 수행 할 수 있지만이 것은 포인트).

+0

첫 번째 작품 덕분에 차드가 작동합니다! 하지만 탭보기 "로그인"을 추가했기 때문에 탭에 속한 탭 단추가 기본보기의 탭 표시 줄에 나타납니다 (로그인 성공 후). 나는 그것을 제거하는 방법을 찾을 수없는 것 같습니다. 모든 것이 에 감겨져 있기 때문입니까? 다른 주에서 어떤 식 으로든 일하게됩니까? 나는 그 주위를 놀아 보았습니다 : P – daney

+0

오, 로그인 이름이 TabView를 추가하지 마십시오. 여기 당신이 시도 할 수있는 것이 있습니다. 탭 응용 프로그램이 아닌 기본 응용 프로그램을 만들고 TabbedViewNavigator 섹션을 수동으로 만듭니다. 그런 다음 로그인 구성 요소를 작성하여 화면에있는 항목 위에 올려 놓을 수 있습니다. 그런 다음 구성 요소를 표시하거나 숨기고 TabbedViewNavigator를 표시하거나 숨기고 로그인에 성공하면 첫 번째보기를 시작합니다. 시연하기 위해 내 대답에 몇 가지 추가 코드를 추가하겠습니다. – Chad

+0

감사합니다. 시도해 보겠습니다.나는 지금 Tabbed view를 사용하지 않기로 결정했다. 현재 저는 "도메인 선택"> "로그인"> "기본보기"로 전환하는보기 기반 응용 프로그램 템플릿을 사용하고 있습니다. 후속 뷰의 나머지 부분은 List 구성 요소 만 사용했습니다. [예제 >> 'protected function list_changeHandler (이벤트 : IndexChangeEvent) : void { // "다음 뷰로 DomainID (데이터)를 탐색하여 밀어 넣기" 네비게이터. pushView (views.LoginView, list.selectedItem.DomainID); }' 하지만 더 많은 것을 탐구하는 것이 좋을 것입니다. 나는 차드 (Chad) ( – daney

관련 문제