2008-09-12 11 views
1

私はいくつかの他の入力コントロールと一緒にボタンバーのinfをフレックスしています。私はButtonBarにタブするまで、各コントロールのtabIndexプロパティを設定しています。FlexでButtonBarコンポーネントをタブで移動するにはどうすればよいですか?

ButtonBarには、3つのボタンを持っていますが、それにタブ移動、最初のボタンをもう一度、タブをフォーカスを取得し、フォーカスが戻っトップコントロールに行く...

は、どのように私は、A内のすべてのボタンを経るタブ移動することができますフレックスボタンバー?これを行う方法はありますか、これに対して個別のボタンを作成する必要はありますか?

これは、フォーカスがボタンを横断するバー内にあるとき、ユーザは、左/右矢印キーを押す必要がありますように、コンポーネントが書かれている

答えて

3

...私にできるバグのように思える - これはかなりあります標準のGUI動作(ラジオボタングループのような他の場所でもこれが見えます)。あなたはSDK source for ButtonBarに見れば、彼らはそれが作成されますよう、それぞれの子ボタンの明示的に無効のタブにフォーカスをしたところ、次のように表示することができます:

override protected function createNavItem(
             label:String, 
             icon:Class = null):IFlexDisplayObject 
    { 
     var newButton:Button = Button(navItemFactory.newInstance()); 

     // Set tabEnabled to false so individual buttons don't get focus. 
     newButton.focusEnabled = false; 
    ... 

本当にこの動作を変更したい場合は、あなたがそれを行うには、サブクラスを作ることができます、このようなもの:

package { 
    import mx.controls.Button; 
    import mx.controls.ButtonBar; 
    import mx.core.IFlexDisplayObject; 

    public class FocusableButtonBar extends ButtonBar { 
     public function FocusableButtonBar() 
     { 
      super(); 
      this.focusEnabled = false; 
     } 

     override protected function createNavItem(
        label:String, icon:Class=null):IFlexDisplayObject 
     { 
      var btn:Button = Button(super.createNavItem(label, icon)); 
      btn.focusEnabled = true; 
      return btn; 
     } 
    } 
} 
関連する問題