2012-01-26 4 views
0

私は単純なTabbedViewNavigatorApplicationを作成しました。新しいビューを読み込むのではなく、2つのタブがそれぞれテキストと電子メールを送信します。だから私は新しいビューを押すのデフォルトの動作を防ぐ必要があります。ビューのpreventDefaultの使用

文書にはa view can cancel a navigation operation by canceling its FlexEvent.REMOVINGと記載されています。しかし、明らかに、FlexEventのような定数はありません。しかし、ViewNavigatorEventについては、その最初のリンクのさらに遠くに記載されています。だからここ

は、私が持っているものだが、私どちらもトレースステートメントを参照してくださいにもナビゲーションを停止することができています:あなたは

vwText.addEventListener(ViewNavigatorEvent.REMOVING, doSomething); 

アウトを取る必要があり

<?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

をあなたのスクリプトブロックの。

関数の内部にある必要があります。 creationCompleteイベントを使用して、そのリスナーを追加するinit関数を作成できます。

+0

Doh!はい、それを反映して上記のコードを編集しました。まだ動かない。トレースのいずれも実行されていません。 – David

関連する問題