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')"/>

これで、「trends」をクリックすると firstView の「views.TrendsView」が表示されることがわかりました。今、あなたはそのビューにいて、「トレンド」(一番下のナビゲーションバー) をもう一度クリックして、どのイベントがフレックスディスパッチしますか?

4

3 に答える 3

1

ビュー ナビゲーターでイベントをリッスンしたい場合は、次の方法でうまくいく傾向があることがわかりました。

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

この場合、ビュー ナビゲータは「mainNavigator」と呼ばれます。私もこれをやった:

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

しかし、それがそれほどきれいかどうかはわかりません。

于 2012-02-20T19:38:02.800 に答える
1

これはあなたを助けるかもしれません: http://opensource.adobe.com/wiki/display/flexsdk/View+and+ViewNavigator

このドキュメントによると、クラス「views.TrendsView」は、「trends」が再度クリックされたときに、タイプ ViewNavigatorEvent.VIEW_ACTIVATE のイベントを送出する必要があります。

于 2011-08-20T07:18:21.527 に答える
0

@Davz、viewActivateディスパッチは1回だけ、つまり最初に「トレンド」をクリックしたとき。「トレンド」に入ってもう一度クリックすると、そのビューはアクティブ化されているため、viewActivate イベントは発生しません。Flex はアクティブ ビューでイベントを発生させないと思います。つまり、「トレンド」タブがアクティブで、下部のナビゲーション バー (TabViewNavigatorApplication 内) の「トレンド」をもう一度クリックします。

于 2011-08-22T19:16:46.920 に答える