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
不应该打开任何视图,而是调用一些函数,有办法吗?
更新
我看到它here有一个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
答案 0 :(得分:0)
您可以将功能添加到视图中,或者您需要为您编写适当的eventListener按钮以检查当前视图的类型并确定该方式,该怎么做。