2

ビュースタックがあるコンポーネントmxmlファイルがあります。ボタンをクリックすると、最初の子に移動します。次に、2番目の子にあるボタンをクリックすると、2番目の子に移動する必要があります。すべての子は、ビュースタックに含まれるコンポーネントファイルです。これをどのように行うことができますか、サンプルコードは以下にあります、

-------------------- Application.mxml ---------------------

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" >
    <mx:Script>
        <![CDATA[
             private function loadScreen():void
             {
                navigationViewStack.selectedChild=id_offering;  
             }
        ]]>
    </mx:Script>

     <mx:Button label="Save" click="loadScreen();"/>

 </mx:Canvas>

<mx:ViewStack id="navigationViewStack"  width="100%" height="100%">
    <components:dashboard   id="id_dashboard" label="Dashboard" />
    <components:offering   id="id_offering" label="Offering" />
    <components:IssueSec id="id_issueSec" label = "Issues"/>
</mx:ViewStack>

-------------------------終了------------------------ --------------

これで、offering.mxmlファイルでnavigationViewStackにアクセスしようとすると、「未定義のプロパティnavigationViewStackへのアクセス」というエラーが表示されます。

コンポーネントのmxmlファイルからビュースタックにアクセスする方法について教えてください。

ありがとう!

乾杯、ディーナ

4

3 に答える 3

4

Offering.mxml は、Application.mxml ファイル内のプロパティであるため、navigationViewStack にアクセスできません。Offering.xml 内からイベントをディスパッチする必要があります。Application.mxml はそのイベントをリッスンし、適切なビュー スタック要素に切り替えることで処理します。

カスタム イベントに慣れていない場合は、次をお読みください。

http://livedocs.adobe.com/flex/3/html/help.html?content=createevents_3.html

于 2010-05-10T15:31:29.793 に答える
1

カスタムイベントはあなたの質問に対する答えです。その単純な例を見てください

http://flexblog.faratasystems.com/2007/02/26/event-driven-programming-in-flex-with-custom-events

于 2010-05-10T22:53:02.420 に答える
1

カスタム イベントは、正しく適切な方法です。コードベースが大きくなるにつれて最終的に保守が難しくなる、手早く汚いソリューションが必要な場合は、 のボタンクリックハンドラーからこれを試すことができますOffering.mxml

ViewStack(this.parent).selectedIndex = 2; //2 for IssueSec 
于 2010-05-11T09:00:23.123 に答える