2012-02-17 3 views
0

J'ai un menu qui est un sprite et j'ajoute un bouton pour pouvoir réduire le menu. J'utilise un SimpleButton() et j'ai ajouté le bouton en tant qu'enfant du menu alors menu.addChild(button) Le problème que je rencontre est que lorsque je souris et que je clique sur le bouton, aucun des événements ne se déclenche. Le sprite du menu a sa propre souris sur l'événement et le bouton doit être placé par rapport au menu, il est donc logique d'être un enfant du menu. Comment puis-je faire fonctionner le bouton?AS3 - SimpleButton à l'intérieur d'un sprite

Merci d'avance!

Modifier
Voici mon code:

protected const rectangle:Sprite = new Sprite(); 
private const minimizeBtn:SimpleButton = new SimpleButton(new ButtonDisplayState(MINIMIZE_BTN_BG_COLOR, 15, 15), new ButtonDisplayState(0xFF0000, 15, 15), new ButtonDisplayState(0x00FF00, 15, 15), new ButtonDisplayState(0x0FF000, 15, 15)); 
rectangle.addEventListener(MouseEvent.MOUSE_OVER, rectMouseOver); 
addChild(rectangle); 
rectangle.addChild(minimizeBtn); 
+0

Quels sont les événements ne sont pas déclenchés: ceux du menu ou le bouton? cliquez, mouseOver ou les deux? – sch

+0

Le bouton. Click et mouseOver ne tirent pas tous les deux. –

+0

Pouvez-vous poster le code où vous ajoutez les écouteurs? –

Répondre

1

Le sprite parent (menu) peut être manger les événements de souris. Essayez de définir mouseChildren = true sur cet objet.

+0

mouseChildren est vrai par défaut, je ne pense pas qu'il a changé cela. – sch

+0

correct. Je n'ai pas changé cela –

+0

Si je fais que le bouton soit un enfant de la scène et non le menu, puis utilise des coordonnées absolues pour mettre le bouton au même endroit que cela fonctionne. Il doit y avoir un moyen de le faire fonctionner comme un enfant du menu sprite cependant? –

0

Tout d'abord, pourquoi diable définissez-vous votre bouton comme un const? Définissez-le comme une variable non-const qui est juste stupide, sauf si vous avez une bonne raison pour cela. Ensuite, ajoutez vos écouteurs d'événement DIRECTEMENT à minimizeBtn, pas au conteneur rectangle (l'objet parent).

Sachez également que bien que la documentation indique que les quatre états du bouton sont facultatifs dans le constructeur, ils ne sont pas du tout optionnels. La classe est très spécifique sur les paramètres constructeurs qui provoqueront la rupture de la classe et ne fonctionneront pas correctement à l'exécution (sans erreurs de compilation ou d'exécution bien sûr, puisque flash en est le champion).

Ainsi, bien que vous fournissiez les quatre arguments constructeurs ici, il peut être quelque chose à bricoler si mes suggestions précédentes échouent. Voir le lien suivant pour plus de NFO sur le constructeur.

http://selfdocumentingcode.blogspot.com/2009/04/flash-simplebutton-and-mouseover-and.html

Questions connexes