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