0

<s:ViewNavigator id="trends" label="Trends" width="100%" height="100%" firstView="views.TrendsView" icon="@Embed('assets/column-chart-icon32.png')"/>
<s:ViewNavigator id="attach" label="Attach" width="100%" height="100%" firstView="views.AttachView" icon="@Embed('assets/paperclip-icon32.png')"/>

现在,我知道如果您单击“趋势”,那么将显示 firstView“views.TrendsView”。现在您在该视图中并再次单击“趋势”(底部导航栏)哪个事件将灵活调度?

4

3 回答 3

1

这可能会对您有所帮助:http: //opensource.adobe.com/wiki/display/flexsdk/View+and+ViewNavigator

根据此文档,当再次单击“趋势”时,您的类“views.TrendsView”应该调度 ViewNavigatorEvent.VIEW_ACTIVATE 类型的事件。

于 2011-08-20T07:18:21.527 回答
1

如果您想在视图导航器上收听事件,我发现这些往往有效:

elementAdd="mainNavigator_elementAddHandler(event)"
elementRemove="mainNavigator_elementAddHandler(event)"

在这种情况下,我的视图导航器称为“mainNavigator”。我也这样做了:

ChangeWatcher.watch(mainNavigator,'length', mainNavigator_lengthChangeHandler, false, true);

但我不知道那是不是很干净。

于 2012-02-20T19:38:02.800 回答
0

@Davz,viewActivate 仅发送一次,即第一次单击“趋势”。一旦您进入“趋势”并再次单击,它将不会触发 viewActivate 事件,因为该视图已激活。我认为 flex 不会在活动视图上触发任何事件,即“趋势”选项卡处于活动状态,并且您再次单击底部导航栏上的“趋势”(在 TabViewNavigatorApplication 中)

于 2011-08-22T19:16:46.920 回答