Компонент написан таким образом, что пользователь должен нажимать клавиши со стрелками влево / вправо, когда фокус находится в пределах полосы, чтобы перемещаться по кнопкам - это довольно стандартное поведение графического интерфейса пользователя (вы также видите это в других местах, таких как группы переключателей) , Если вы посмотрите на источник SDK для 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;
}
}
}