ijk_reference | Bonjour,
Je cherche a recréer une classe bouton en AS3 car je la voudrais plus ou moins animée...
Seulement si j'arrive à intercepter les événements pour le survole et le clique de la souris, il y en a un spécial qui m’échappe complètement :
Par exemple avec un simple bouton (voir code ci dessous) en plaçant la curseur sur le bouton et en enfonçant la souris (et en restant enfoncer) on peut trimballer le curseur sur tout l’écran et le bouton a toujours sa couleur de recouvrement.
Jusque là j'arrive à reproduire... sauf ceci :
La souris toujours enfoncé, je place le curseur en dehors de la fenêtre de Flash et là je relâche la souris. Aussitôt le bouton reprend sa couleur de base. Je n’arrive pas à émuler cet événement !
Tous les essais de Bouton extension de Sprite font que je n‘ai plus aucun événement émanant de mon bouton dès que je sors de sa zone même avec la souris enfoncée.
Il y a sûrement un truc tout con, genre une propriété à initialiser. En tout cas je ne pense pas qu’il faille de bidouille car la classe SimpleButton fonctionne très bien même en bougeant le curseur en dehors de la fenêtre du logiciel Flash.
Connaissez vous la solution ?
Merki beauku !
Code :
- package
- {
- import flash.display.*;
- public class Test extends Sprite
- {
- public function Test()
- {
- var myButton:SimpleButton = new SimpleButton();
- myButton.upState = createSpriteRect(32,32,64,32, 0xFF0000);
- myButton.overState = createSpriteRect(32,32,64,32, 0x00FF00);
- myButton.downState = createSpriteRect(32,32,64,32, 0x0000FF);
- myButton.hitTestState = createSpriteRect(32,32,64,32, 0xFF00FF);
- this.addChild(myButton);
- }
- private function createSpriteRect(x:int, y:int, w:int, h:int, color:int):Sprite
- {
- var sprite:Sprite = new Sprite();
- sprite.graphics.lineStyle(2, 0x202020);
- sprite.graphics.beginFill(color);
- sprite.graphics.drawRect(x, y, w, h);
- return sprite;
- }
- }
- }
|
|