Aide - Recherche - Membres - Calendrier
Version complète : MouseEvent.ROLL_OUT ne marche pas tout le temps
Centre de Formation Flash - Forums Adobe Flash > Rich media et intégration > Flex
teuzze
Bonjour,
Je fais du RollOver sur des Image et ça marche icon_smile.gif. Mais le problème c'est que des fois l'image de survol reste alors que la souris n'est plus dessus. Ca arrive que quand je bouge la souris très vite. Est-ce que c'est possible que l'image n'attrape pas l'évènement ?

Et j'ai une question aussi: quelle est la différence entre MouseEvent.ROLL_OVER et MouseEvent.MOUSE_OVER ?


CODE
package
{
    import flash.events.*;
    import mx.controls.Image;
    import flash.display.*;
    import mx.containers.Canvas;
    
    public class Bouton extends Canvas
    {
    private var imgOut: Image;
    private var imgOn: Image;
    private var imgClick: Image;
    
        public function Bouton(adresseOut :String, adresseOn :String, adresseClick :String )
        {
            imgOut = new Image();
            imgOut.load(adresseOut);
            imgOut.buttonMode = true;
            imgOut.useHandCursor = true;
            imgOut.mouseChildren=false;
            
            imgOn = new Image();
            imgOn.load(adresseOn);
            imgOn.buttonMode = true;
            imgOn.useHandCursor = true;
            imgOn.mouseChildren=false;

            
            imgClick = new Image();
            imgClick.load(adresseClick);
            imgClick.buttonMode = true;
            imgClick.useHandCursor = true;
            imgClick.mouseChildren=false;
            
            addChild(imgOut);    
            
            this.addEventListener(MouseEvent.ROLL_OVER, mouseOver);
            this.addEventListener(MouseEvent.ROLL_OUT, mouseOut);
            this.addEventListener(MouseEvent.MOUSE_DOWN , mouseClick);
            this.addEventListener(MouseEvent.MOUSE_UP, mouseDeClick);
        }

        public function mouseOver(adresse :String ): void    
        {
            removeChild(imgOut);
            addChild(imgOn);    
        }
        
        public function mouseOut(adresse :String ): void    
        {
            removeChild(imgOn);
            addChild(imgOut);    
        }
        
        public function mouseClick(adresse :String ): void    
        {
            removeChild(imgOn);
            addChild(imgClick);    
            this.parent.parent.addEventListener(MouseEvent.MOUSE_UP, mouseDeClickAilleurs);
        }
        
        public function mouseDeClick(adresse :String ): void    
        {
            removeChild(imgClick);
            addChild(imgOn);    
            this.parent.parent.removeEventListener(MouseEvent.MOUSE_UP, mouseDeClickAilleurs);
        }
        
        public function mouseDeClickAilleurs(adresse :String ): void    
        {
            removeChild(imgClick);
            addChild(imgOut);
            this.parent.parent.removeEventListener(MouseEvent.MOUSE_UP, mouseDeClickAilleurs);
        }
    }
}


Merci icon_smile.gif

Teuzze
Fusion
CITATION(teuzze @ Jul 5 2007, 03:18 PM) *
Et j'ai une question aussi: quelle est la différence entre MouseEvent.ROLL_OVER et MouseEvent.MOUSE_OVER ?



http://livedocs.adobe.com/flex/201/langref...#event:rollOver

En résumé :
- rollOver n'envoie l'événement qu'une fois
- mouseOver envoie l'événement à chaque fois qu'il passe au-dessus d'un fils du container qui a enregistré l'événement, ce qui veut dire que si la souris reste à l'intérieur du container, l'événement mouseOver peut être envoyé plus d'une fois.
teuzze
Merci pour cet éclaircissement Fusion gourou.gif.
loka
J'ai le même problème en faisant du MOUSE_OVER, y a t-il un moyen de regler ce petit problème ?
loka
Je remonte le sujet pour savoir si quelqu'un a une reponse au problème évoqué par teuzze (voir le premier post, les 2 premières phrases).

Merci et si je fais une bétise en remontant un sujet merci de me le signifier icon_redface.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.