2010-11-02 26 views
0

J'ai certains boutons qui ont basculé sur true. J'essaye de re-régler l'état du bouton à non sélectionné. Mais, je ne peux pas accéder au bouton directement comme: button.selected = false.Flex 3: désélectionner le bouton bascule via la référence UIComponent

J'accède aux enfants du HBox qui sont les boutons. UIComonent n'a pas de propriété sélectionnée. Alors, comment désélectionner la bascule dans ce bit de code ci-dessous?

for (var j : int=0; j < theHBox.numChildren; j++){ 
    var child : DisplayObject = theHBox.getChildAt(j); 
    var myButton:UIComponent = child as UIComponent; 
    myButton.setStyle("borderColor", "blue"); 
    myButton.visible = true; 
    } 

Répondre

2

Si possible, je recommande la coulée du UIComponent à un bouton:

for (var j : int=0; j < theHBox.numChildren; j++){ 
    var child : DisplayObject = theHBox.getChildAt(j); 
    if(child is Button){ 
    var myButton:Button = child as Button; 
    myButton.setStyle("borderColor", "blue"); 
    myButton.visible = true; 
    } else if(child is somethingElse){ 
    // do something else 
    } 
} 

Vous pouvez aussi faire quelque chose comme ceci:

for (var j : int=0; j < theHBox.numChildren; j++){ 
    var child : DisplayObject = theHBox.getChildAt(j); 
    var myButton:UIComponent = child as UIComponent; 
    myButton.setStyle("borderColor", "blue"); 
    myButton.visible = true; 
    myButton['toggle'] = false; 
} 

qui fonctionnera si tous les enfants sont des boutons , mais si le 'myButton' n'a pas de propriété toggle, cela provoquera une erreur d'exécution.

+0

Salut Flextras.com, Merci beaucoup pour l'aide. J'ai utilisé l'option 1. J'ai pu me débarrasser de l'UIComponent. Donc, j'ai changé la ligne à var myButton: Button = enfant en tant que bouton. Le reste de votre code, je l'ai utilisé inchangé. Merci encore. – Laxmidi

+0

Bonne prise sur ma faute de frappe. Cela arrive parfois lorsque j'écris du code dans le navigateur. Je vais le réparer dans ma réponse. Heureux de vous aider! – JeffryHouser