2009-08-27 7 views
0

J'ai deux boutons dans l'application Flex l'un à côté de l'autre, ButtonA et ButtonB. Lorsque l'utilisateur fait un survol de la souris sur l'un des deux boutons, je veux que l'enveloppe de retournement (overSkin) apparaisse sur les deux boutons, par exemple Button A et Button B. J'ai essayé de le faire en utilisant cet utilisateur roulé sur le bouton B:Survolez et déployez les boutons

ButtonA.dispatchEvent(new MouseEvent(MouseEvent.ROLL_OVER)); 

puis lorsque l'utilisateur a déployé Button BI faire:

ButtonA.dispatchEvent(new MouseEvent(MouseEvent.ROLL_OUT)); 

Bouton Je ne peux pas faire la même chose sur le bouton A lorsque les rouleaux utilisateur/sortie. Il provoque une boucle infinie entraînant un débordement de pile.

Existe-t-il un autre moyen de le faire?

Répondre

1

Contrôlez explicitement la récurrence avec une variable supplémentaire. Pour retournement dans le bouton A:

if(!rolledIntoButtons) { 
    rolledIntoButtons = true 
    ButtonB.dispatchEvent(new MouseEvent(MouseEvent.ROLL_OVER)) 
} 

... avec la même chose en arrière dans le bouton B. Ensuite, sur le déploiement dans le bouton A:

if(rolledIntoButtons) { 
    rolledIntoButtons = false 
    ButtonB.dispatchEvent(new MouseEvent(MouseEvent.ROLL_OUT)) 
} 

également, consultez la documentation sur les boutons; vous pourriez éviter d'introduire une variable supplémentaire en vérifiant directement l'état de roulement des boutons.

Questions connexes