2010-05-11 6 views
0

J'ai un HGroup avec quelques boutons à l'intérieur qui est le menu de mon application.Flex 4 Etat du bouton dans un HGroup

<s:HGroup id="nav"> 
    <s:Button id="homeButton" label="Home" /> 
    <s:Button id="showroomButton" label="Showroom" /> 
    <s:Button label="Catalogue" /> 
    <s:Button label="Offers" /> 
    <s:Button label="My Account" /> 
    <s:Button label="My Orders" /> 
</s:HGroup> 

Ce que je veux quand je clique par exemple le #homeButton pour changer son état de « plus », deviennent invalides et remis à zéro tous les autres boutons à l'état « haut ».

J'ai écrit cette fonction

private function resetNavState():void { 
     for(var i:int = 0,ii:int = nav.numChildren-1;i<ii;i++) { 
     Button(nav.getChildAt(i)).mouseEnabled = true; 
     Button(nav.getChildAt(i)).skin.setCurrentState("up",true); 
    } 
} 

Et puis sur le gestionnaire de clic homeButton par exemple i utiliser

protected function homeButton_clickHandler(event:MouseEvent):void 
{ 
    resetNavState(); 
    currentState = "home"; 
    homeButton.skin.setCurrentState("over",true); 
    homeButton.mouseEnabled = false; 

} 

Je remet à zéro les états des boutons #nav mais il ne change pas l'état du bouton enfoncé.

Des idées?

Merci à l'avance

Répondre

0

Vous voulez placer vos boutons dans un dans un contrôle <s:ButtonBar /> plutôt que le HGroup.

+0

Voulez-vous dire un navigateur? – chchrist

+0

désolé à ce sujet, j'ai oublié les balises de code :) – quoo

+0

J'utiliserais un ButtonBar mais je ne veux pas utiliser viewstacks mais états. Aussi, je trouve plus difficile d'habiller un ButtonBar ... – chchrist