按钮点击flex 4 Mobile中的viewnavigator?

时间:2013-05-24 05:00:54

标签: actionscript-3 flex flex4 flex4.5

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

  

1 个答案:

答案 0 :(得分:0)

您可以将功能添加到视图中,或者您需要为您编写适当的eventListener按钮以检查当前视图的类型并确定该方式,该怎么做。