Какое событие запускается при нажатии ViewNavigator в приложении Flex Mobile? - PullRequest
0 голосов
/ 20 августа 2011

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

Теперь, я знаю, что если вы нажмете «тренды», то сначала отобразится «views.TrendsView». Теперь вы находитесь в этом представлении и снова нажимаете на «тренды» (нижняя панель навигации), какое событие будет сгибаться?

Ответы [ 3 ]

1 голос
/ 20 февраля 2012

Если вы хотите прослушивать события в навигаторе представлений, я обнаружил, что они имеют тенденцию работать:

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

В этом случае мой навигатор представлений называется 'mainNavigator'.Я также сделал это:

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

Но я не знаю, насколько это чисто.

1 голос
/ 20 августа 2011

Это может вам помочь: http://opensource.adobe.com/wiki/display/flexsdk/View+and+ViewNavigator

В соответствии с этим документом ваш класс views.TrendsView должен отправлять событие типа ViewNavigatorEvent.VIEW_ACTIVATE при повторном щелчке по «тренду».

0 голосов
/ 22 августа 2011

@ Davz, viewActivate dispatch только один раз, т.е. когда вы нажимаете «Trends». Как только вы окажетесь в «Trends» и нажмете снова, событие viewActivate не будет запущено, так как это представление активировано. Я думаю, что flex не запускает никаких событий в активном представлении, то есть вкладка «тренды» активна, и вы снова нажимаете «тренды» в нижней панели навигации (в TabViewNavigatorApplication)

...