0

ViewNavigator は基本的にさまざまなビューをナビゲートするために使用されますが、任意のビューへの切り替えを制限し、代わりに何らかの操作を行う簡単な方法はありますか?

例: 製品マニュアルまたはヘルプ ドキュメントを表示していますが、どのビューにも移動せずに、viewnavigator のボタンをクリックしてカスタマー ケアに連絡したいと考えています。

コード

<s:ViewNavigator id="navigatorHome" width="100%" height="100%"  
                 elementAdd="viewAdded(event)" elementRemove="viewRemoved(event)" 
                 icon="{Images.iconHome64}" firstView="{HomeView}">

            <s:navigationContent>
                <s:Button icon="{iconBack}" click="{navigatorHome.activeView.navigator.popView()}"/>
            </s:navigationContent>              
</s:ViewNavigator>
<s:ViewNavigator id="navigatorPhone" width="100%" height="100%" 
                 elementAdd="viewAdded(event)" elementRemove="viewRemoved(event)" 
                 icon="{iconPhone}" >
</s:ViewNavigator>
<s:ViewNavigator id="navigatorAlert" width="100%" height="100%" 
                 elementAdd="viewAdded(event)" elementRemove="viewRemoved(event)" 
                 icon="{iconAlerts}" firstView="{AlertView}">
</s:ViewNavigator>
<s:ViewNavigator id="navigatorSettings" width="100%" height="100%" 
                 elementAdd="viewAdded(event)" elementRemove="viewRemoved(event)" 
                 icon="{iconSettings}" firstView="{SettingsView}">
            <s:navigationContent>
                <s:Button icon="{iconBack}" click="{navigatorSettings.activeView.navigator.popView()}"/>
            </s:navigationContent>
</s:ViewNavigator>

したがって、ここnavigatorPhoneではビューを開くべきではありませんが、代わりに何らかの関数を呼び出す必要があります。方法はありますか?

アップデート

あるのをここで見たので、Removing eventこれを手に入れました

private function removing(event:ViewNavigatorEvent):void
{
    trace("Inside removing event: "+event.currentTarget.name+", "+communicateViewCalled+", "+navigatorHome.activeView.name);
    //event.preventDefault();
}

ここで、とにかくクリックされたビューを知ることができれば、うまくいきます。助けはありますか?

デフォルトでトレース出力をオンにHomeViewしてクリックしましたCommunicateView

内部削除イベント: HomeView、false、HomeView

4

1 に答える 1