2008-09-12 19 views
1

Bazı diğer giriş denetimleriyle birlikte bir düğmeli çubuk esnekliğim var, her bir denetim için tabIndex özelliğini ayarladım ve her şey ButtonBar'a gidene kadar iyi gider. Nasıl sağlayabilirim ...Flex'te bir ButtonBar bileşenini nasıl etiketleyebilirim?

ButtonBar 3 düğme var ama buna sekme, sadece ilk düğmesine tekrar odağı, sekme alır ve odak başa dön kontrole giden bir TÜM düğmeleri geçmesi sekme Flex Düğme çubuğu Bunu yapmanın bir yolu var mı yoksa bunun için tek tek düğmeler mi oluşturmalıyım?

Bu benim için olası böcek gibi görünüyor ...

cevap

3

bileşen yazılır odak düğmeleri çapraz çubuğun dahilinde olduğunda kullanıcı sol/sağ ok tuşlarına basın gerekir böylece - bu oldukça standart GUI davranışı (bunu radyo düğmesi grupları gibi başka yerlerde de görebilirsiniz). Eğer gerçekten bu davranışı değiştirmek isterseniz

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; 
    ... 

, bunu yapmak için bir alt sınıfı yapabiliriz: Buna SDK source for ButtonBar içine bakarsak onlar oluşturulduktan olarak her çocuk düğmesi için açıkça engelli sekme odağı ettik nerede görebilirsiniz böyle bir şey:

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; 
     } 
    } 
} 
İlgili konular