Déterminer l'entrée/sortie de la souris(pointeur) d'un swf

Description

Voici un petit utilitaire en AS3 que j'ai codé rapidement pour déterminer les sorties et entrées du pointeur dans un SWF.
Pourquoi faire me diriez-vous? Il y a évidement plusieurs applications.
Celle qui m'en a donné l'idée c'est : comment mettre en pause un jeu lorsque le pointeur du joueur sort du SWF ?
On peut aussi jouer ou stopper une animation (pour une bannière publicitaire par exemple), etc. Regardez l'exemple avec mon fameux lapin :)

Source / Exemple :


/*Le principe est simple. On crée un Sprite de la taille du Stage, lorsqu'on sort de ce Sprite, on sort en faite du SWF, de même pour la rentrée.
C'est pourquoi sur ce Sprite j'écoute les événements MouseEvent.ROLL_OVER et MouseEvent.ROLL_OUT.
Certains me diront qu'il existe déjà l'événement Stage.MOUSE_LEAVE. Mais ça détermine seulement la sortie, il faut du code en plus pour déterminer l'entrée.
L'utilisation est très simple, en voici un exemple
/*

package {
	
/////////////////////////////////
import flash.display.Sprite;
import com.bali.utils.*;
/////////////////////////////////
	
    public 	class TestMouseOutManager extends Sprite {
		public function TestMouseOutManager() :void {
			var mom :MouseOutManager = new MouseOutManager( this ,true );
			mom.addEventListener( MouseOutEvent.INSIDE 	, onInside 	);
			mom.addEventListener( MouseOutEvent.OUTSIDE , onOutside );
		}
		
		private function onInside	( e:MouseOutEvent ) :void {
			trace( "ENTREE" );
		}
		private function onOutside	( e:MouseOutEvent ) :void {
			trace( "SORTIE" );
		}
	}
	
}

Conclusion :


# Faite attention à ne JAMAIS utiliser d'algorithme qui supprime tous les DO(DisplayObject) du Stage, sinon le Sprite de cet utilitaire disparaîtra avec... snif!
# J'ai oublié de coder cet utilitaire dans le cas où on redimensionne le SWF. Mise à jour si j'ai le temps :)

Enjoy !
bali_balo =]

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.