2012-01-26 2 views
0

Я создал простую вкладку TabbedViewNavigatorApplication. Две вкладки собираются отправить текст и электронную почту, соответственно, вместо загрузки нового представления. Поэтому мне нужно предотвратить поведение по умолчанию при нажатии нового представления.Использование preventDefault для просмотра

Документация говорит a view can cancel a navigation operation by canceling its FlexEvent.REMOVING. Однако, по-видимому, нет такой константы для FlexEvent. Существует, однако, для ViewNavigatorEvent, как описано дальше по этой первой ссылке.

Итак, вот что у меня есть, но я ни вижу заявления следа, ни я в состоянии остановить навигацию:

<?xml version="1.0" encoding="utf-8"?> 
<s:TabbedViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="160" creationComplete="completeHandler(event)"> 
<fx:Script> 
    <![CDATA[ 

     import mx.events.FlexEvent; 

     import spark.events.ViewNavigatorEvent; 

     private function completeHandler(e:Event):void 
     { 
      vwText.addEventListener(ViewNavigatorEvent.REMOVING, removingHandler); 
     } 

     private function removingHandler(e:ViewNavigatorEvent):void 
     { 
      trace("removingHandler::"); 
      e.preventDefault(); 
     } 

     private function doSomething(e:MouseEvent):void 
     { 
      trace("Do Something"); 
     } 

    ]]> 
</fx:Script> 
<s:ViewNavigator id="vwText" label="Text" width="100%" height="100%" click="doSomething(event)" firstView="views.SendasTextView"/> 
<s:ViewNavigator label="Email" width="100%" height="100%" firstView="views.SendasEmailView"/> 
<s:ViewNavigator label="History" width="100%" height="100%" firstView="views.HistoryView"/> 
<fx:Declarations> 
    <!-- Place non-visual elements (e.g., services, value objects) here --> 
</fx:Declarations> 

ответ

1

Вы должны принять

vwText.addEventListener(ViewNavigatorEvent.REMOVING, doSomething); 

из вашего блока сценариев.

Это должно быть внутри функции. Вы можете использовать событие creationComplete для создания функции init, которая добавит этот прослушиватель.

+0

Doh! Да, сделал это и отредактировал приведенный выше код, чтобы отразить его. Все еще не работает. Ни одна из трасс не работает. – David

Смежные вопросы