Flex Mobile View组件访问主要应用程序

时间:2012-05-18 21:26:22

标签: flash flex flex4 adobe flex4.6

Flex Mobile 4.6中是否有办法从<s:View>组件中访问主应用程序?假设我的程序看起来像这样:

主要应用:

<s:TabbedViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                  xmlns:s="library://ns.adobe.com/flex/spark"
                  creationComplete="databaseConnection(event)">

  <s:ViewNavigator id="tasks" width="100%" height="100%"
                       label="Tasks" firstView="views.TasksView"
                       title="Tasks" icon="@Embed('assets/icons/tasks.png')">
  </s:ViewNavigator>
</s:TabbedViewNavigatorApplication>

view.TasksView:

<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark">

  <s:List left="0" right="0" top="0" bottom="0"
     dataProvider="{taskData}" itemRenderer="renderers.TaskListRenderer"/>
</s:View>

假设我想在view.TasksView内访问主应用程序中的变量。我怎么能这样做?

感谢您的时间。

2 个答案:

答案 0 :(得分:1)

FlexGlobalstopLevelApplication

在你的情况下:

var app : TabbedViewNavigatorApplication = FlexGlobals.topLevelApplication as TabbedViewNavigatorApplication

当然,访问顶级应用程序是一个很好的封装中断,通常不推荐。

答案 1 :(得分:0)

最好使用“parentApplication”属性。 例如,如果要从其他视图中禁用视图“vsetting”的选项卡按钮:

parentApplication.vsetting.enabled = false;