Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DÉTERMINER L'ENTRÉE/SORTIE DE LA SOURIS(POINTEUR) D'UN SWF


Information sur la source

Description

Cliquez pour voir la capture en taille normale
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

  • /*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" );
  • }
  • }
  • }
/*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 =]
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de pegase31 le 10/10/2008 17:31:00 administrateur CS

Il va falloir que tu explique l'interêt d'une classe externe ("bali") alors qu'un simple "mouseLeave" et "mouseMove" suffit pour faire tout celà.

Peg'

signaler à un administrateur
Commentaire de stefbuet le 10/10/2008 17:36:46

Salut,

Moi j'aurais dit :

import flash.events.Event;
import flash.events.MouseEvent;
stage.addEventListener(Event.MOUSE_LEAVE, onGoOut);
function onGoOut(e:Event):void {
trace("Mouse out");
stage.addEventListener(MouseEvent.MOUSE_MOVE, onGoIn);
}
function onGoIn(e:MouseEvent):void {
trace("Mouse in");
stage.removeEventListener(MouseEvent.MOUSE_MOVE, onGoIn);
}

C'est plus propre :)

signaler à un administrateur
Commentaire de petifa le 11/10/2008 14:02:38

sympa le lapin et jtrouve ca utile
petfa

signaler à un administrateur
Commentaire de pegase31 le 11/10/2008 14:05:22 administrateur CS

+1 avec Stef ...

Peg'

signaler à un administrateur
Commentaire de bali_balo le 11/10/2008 20:40:37

En fait j'étais partie sur une ancienne source que j'avais codé en AS2 et j'ai repris le code en AS3 sans repenser la conception.
Et puis en testant ton code Stef j'ai vu que ça résolvait mon problème de taille du Stage.
Sinon l'utilité d'une classe externe c'est juste une question de pratique, de réutilisation, au lieu de réécrire le code.
Merci en tout cas pour vos commentaires, je vais revoir mon code :)
bali_balo....=]

signaler à un administrateur
Commentaire de pegase31 le 11/10/2008 20:56:43 administrateur CS

Le passage AS2 >> AS3 n'est pas possible sans une refonte totale du code tellement les principes sont différent dans la logique de codage.

C'est d'ailleurs une des raison pour laquelle peu de gens ne sont toujours pas passé à l'AS3. Mais je souligne l'effort que tu as fait pour ce passage tant redouté et douloureux (ça fait toujours ça la première fois ;))

Peg'

signaler à un administrateur
Commentaire de stefbuet le 11/10/2008 21:01:42

En tout cas avec la sortie de Flash CS4 et de sa nouvelle API, certains codeurs vont regreter de ne pas être passé à l'AS3 plus tôt...

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Convertir As2 en As3 [flash plein navigateur] [ par THEPENGUIN ] Bonjour à toutes et à tous,voilà ma question est simple je n'arrive à convertir un code As2 en As3... quelqu'un pourrait-il m'aider?le code est le sui Projet jeu flash [ par Nicorad ] Bonjour a tous,Je suis étudiant en écriture multimedia actuelement en stage, but de celui ci, creer un jeux flash et le vendre...Avant de commencer la vu metre as3 [ par podi ] bonjour..j ai recup un fla qui tourne en as3 il sagit d'un vu metre canal gauche et droite qui bouge sur un mp3 prechargé...mais serait il possible de passage difficile à AS3 [ par attrition ] Bonjour à tous! Je débute tout juste en AS3 et souhaite refaire tout mon site ainsi... J'ai créé celui-ci sur une seule séquence avec des envois gotoA AS2 :loadMovie => attachMovie [ par JSBR ] Bonjour,    Bon voila mon objectif est plutôt simple je veux pouvoir ajouter à ma scène un clip à partir de son nom de liaison (attachMovie) qui se tr !URGENT! interompe animation et sous-annimation (pause) [ par zen69 ] Bonjour à tous,Je cherche un moyen de faire un pause en AS.Je m'explique si je render mon animation flash, pendant qu'elle joue je peux faire un droit Anti aliasing AS3 [ par chevrevolante ] Bonjour a tous, Est ce que quelqu'un sait comment on peut obtenir l'équivalent du texte sans aliasing ou texte bitmap (accessible dans le panneau des projet internet [ par ckad ] bonjour a tousvoila nous somme a la rechercher d un ou deux champion pour transformer des jeux en flachle projet avance grace a vous car c est la que projet internet [ par ckad ] bonjour a tousvoila nous somme a la rechercher d un ou deux champion pour transformer des jeux en flachle projet avance grace a vous car c est la que jeux en flach [ par ckad ] bonsoir je suis toujours a la recherche d ame charitable pour nous apporter de l aide pour des jeux en flach ou en delphij espere que les chalange vou


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.