1

私のメイン アプリケーション mxml では、タブ ナビゲーターを使用しています。コードに従って、アプリケーション内のどこからでもそのタブ ナビゲーターにアクセスできます。

mx.core.FlexGlobals.topLevelApplication.menuOption.selectedIndex=0;

今私の問題は、タブナビゲーターの子要素であるトランザクションUIでトグルボタンバーを使用した ことです.上記のコードのようにその要素にアクセスするにはどうすればよいですか??

メインの mxml タブ ナビゲーター ::

<mx:TabNavigator   left="10" top="20" bottom="10" right="10" id="menuOption" >

    <ui1:homeUI label="Home" width="100%" height="100%" backgroundColor="#373737" chromeColor="#181818" contentBackgroundColor="#181818" color="#FDFDFD" /> 

    <ui1:transactionUI label="Transaction" width="100%" height="100%" backgroundColor="#373737"  />     

        <ui1:calanderUI label="Employee service" width="100%" height="100%"  horizontalCenter="0"  backgroundColor="#373737" chromeColor="#181818" contentBackgroundColor="#181818" color="#FDFDFD" />
        <ui1:ManagementUI label="Management" width="100%" height="100%" backgroundColor="#373737" chromeColor="#181818" contentBackgroundColor="#181818" color="#FDFDFD" />
        <ui1:reportUI label="Reports" width="100%" height="100%" backgroundColor="#373737" chromeColor="#181818" contentBackgroundColor="#181818" color="#FDFDFD" />

        <ui1:admin label="Admin" width="100%" height="100%" backgroundColor="#373737" chromeColor="#181818" contentBackgroundColor="#181818" color="#FDFDFD" />

    </mx:TabNavigator>

transactionUI内の私のトグルバー::

<s:NavigatorContent xmlns:fx="http://ns.adobe.com/mxml/2009" 
                xmlns:s="library://ns.adobe.com/flex/spark" 
                xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%"
                xmlns:ui="com.colan.*" xmlns:ui1="com.colan.ui.*"
                backgroundColor="#373737" chromeColor="#181818" 
                contentBackgroundColor="#181818" color="#FDFDFD">
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
    <![CDATA[

        import mx.collections.*;
        import mx.core.*;
    ]]>
</fx:Script>
<mx:VBox horizontalAlign="center"  verticalAlign="middle" width="100%"  height="100%">

    <mx:HBox horizontalAlign="center"  verticalAlign="middle" width="100%"  height="15%" >

        <mx:ToggleButtonBar id="toggleButtonBar"
                            dataProvider="{viewStack}"    
                            selectedButtonTextStyleName="mySelectedButtonTextStyleName"
                            />


    </mx:HBox>
    <mx:HBox horizontalAlign="center"  verticalAlign="middle" width="100%"  height="85%" >


        <mx:ViewStack id="viewStack"                 
                      visible="{toggleButtonBar.selectedIndex > -1}" width="100%"  height="100%" >

            <ui1:transaction label="Transaction"/>
            <ui1:addClient label="Add  Client"/>
            <ui1:invoice label="Make invoice"/>
            <ui1:workCatalogue label="Work catalogue"/>
            <ui1:productCataloge label="Products Categories"/>

            <ui1:suppliers label="Offers"/>
            <ui1:calendarPlanUI label="Calendar"/>


        </mx:ViewStack>
    </mx:HBox>
</mx:VBox>

アドバイスお願いします...

4

1 に答える 1

1

FlexGlobals.topLevelApplication は、子画面のいずれかからメイン アプリケーション画面のパブリック変数/関数にアクセスするためのものです。

たとえば.. 「transactionUI」NavigatorContent の ToggleButtonBar 「calendarPlanUI」がメイン アプリケーション「calanderUI」NavigatorContent に移行する場合。次に、すぐにそれについて言及することができます

<ui1:calendarPlanUI label="Calendar" click="mx.core.FlexGlobals.topLevelApplication.menuOption.selectedIndex = '2'"/>

しかし、万が一、このように toggleButtonBar を試している場合

mx.core.FlexGlobals.topLevelApplication.toggleButtonBar.selectedIndex = 1;

次に、メイン アプリケーションの変数/関数/コンポーネントには、「topLevelApplication」を使用してのみアクセスできることに言及したいと思います。transactionUI にインスタンスを作成しないと、他の子画面/メイン アプリでも toggleButtonBar を使用できません。

于 2012-12-20T10:56:07.933 に答える