このコンポーネントは、フォーカスがバー内にあるときにユーザーが左/右矢印キーを押してボタンをトラバースする必要があるように作成されています。これはかなり標準的な GUI の動作です (ラジオ ボタン グループなどの他の場所でも見られます)。ButtonBarの SDK ソースを調べると、子ボタンの作成時に各子ボタンのタブ フォーカスが明示的に無効にされている場所がわかります。
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;
}
}
}