Changement apparence bouton

cs_egrenier Messages postés 5 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 27 mai 2009 - 22 mai 2009 à 17:39
cs_egrenier Messages postés 5 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 27 mai 2009 - 27 mai 2009 à 17:36
Bonjour,
dans mon appli j'aimerai que lorsque je clique sur un
SimpleButton, le bouton change d'apparence. (Au départ il est gris, on
clique dessus il devient vert, on reclique dessus il redevient gris,
etc...). En gros je veux donner l'effet qu'on active et désactive le
bouton.
L'ennui c'est qu'au premier clic ça marche (le bouton
devient vert), mais quand je reclique dessus, il reste vert...et je ne
comprends pas pourquoi.

Voici le code :

[as]
public function bouton()
{
    button = new SimpleButton (new pint_normal(), new pint_dessus(), new pint_enfonce(), new pint_tab());
    button.x = 100;
    button.y = 100;
    addChild(button);
    button.addEventListener(MouseEvent.CLICK, changer) ;
}

private function changer(e:MouseEvent):void
{
    removeChild(button);
   
    if (!button_active)
    {
        button = new SimpleButton (new pint_normal_vert(), new pint_dessus_vert(), new pint_enfonce_vert(), new pint_tab_vert());               
    }
    else
    {
        button = new SimpleButton (new pint_normal(), new pint_dessus(), new pint_enfonce(), new pint_tab());
    }
   
    button_active=!button_active;
   
    button.x = 100;
    button.y = 100;   
   
    addChild(button);
}
/as

public function bouton()
{
button = new SimpleButton (new pint_normal(), new pint_dessus(), new pint_enfonce(), new pint_tab());
button.x = 100;
button.y = 100;
addChild(button);
button.addEventListener(MouseEvent.CLICK, changer) ;
}

private function changer(e:MouseEvent):void
{
removeChild(button);

if (!button_active)
{
button = new SimpleButton (new pint_normal_vert(), new pint_dessus_vert(), new pint_enfonce_vert(), new pint_tab_vert());
}
else
{
button = new SimpleButton (new pint_normal(), new pint_dessus(), new pint_enfonce(), new pint_tab());
}

button_active=!button_active;

button.x = 100;
button.y = 100;

addChild(button);
}

Si quelqu'un a une idée ou une meilleure solution !
Merci de votre aide.

3 réponses

cs_egrenier Messages postés 5 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 27 mai 2009
22 mai 2009 à 17:40
Oula excusez-moi du code écrit deux fois mais il n'y a pas de prévisualisation et je ne peux pas éditer...
0
cs_tom Messages postés 1511 Date d'inscription samedi 8 décembre 2001 Statut Modérateur Dernière intervention 11 juin 2009
27 mai 2009 à 17:17
Salut,

est ce que button_active est déclarée variable publique? Elle est pas ecrite en amont.
0
cs_egrenier Messages postés 5 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 27 mai 2009
27 mai 2009 à 17:36
Du coup c'est bon j'ai trouvé une solution bien meilleure.
Je crée deux boutons au départ (un gris et un vert), je cache le vert avec monBouton_vert.visible = false;
Et ensuite je jongle entre les .visible=true ou =false quand on clique sur le bouton.
Ça évite d'instancier un nouveau bouton à chaque clic...
0
Rejoignez-nous