Dans ActionScript 3 (AS3), les événements de souris sont un type d'événement qui se produit lorsqu'un utilisateur interagit avec la souris sur un objet d'affichage (comme un bouton, une image ou un clip) sur la scène. Ces événements vous permettent de créer des éléments interactifs dans vos applications Flash. Ils sont distribués par la classe `DisplayObject` et ses sous-classes.
Voici quelques événements clés de la souris dans AS3 :
* `MouseEvent.CLICK` : Distribué lorsque l'utilisateur clique avec le bouton de la souris sur un objet d'affichage. Il s'agit de l'événement de souris le plus courant.
* `MouseEvent.DOUBLE_CLICK` : Distribué lorsque l'utilisateur double-clique sur le bouton de la souris sur un objet d'affichage.
* `MouseEvent.MOUSE_DOWN` : Distribué lorsque l'utilisateur appuie sur un bouton de la souris alors que le curseur de la souris se trouve sur un objet d'affichage.
* `MouseEvent.MOUSE_UP` : Distribué lorsque l'utilisateur relâche un bouton de la souris après avoir appuyé dessus alors que le curseur se trouve sur un objet d'affichage.
* `MouseEvent.MOUSE_OVER` : Distribué lorsque le curseur de la souris se déplace sur un objet d'affichage.
* `MouseEvent.MOUSE_OUT` : Distribué lorsque le curseur de la souris quitte un objet d'affichage.
* `MouseEvent.MOUSE_MOVE` : Distribué lorsque le curseur de la souris se déplace alors qu'il se trouve sur un objet d'affichage. Cet événement se déclenche à plusieurs reprises lorsque la souris se déplace.
* `MouseEvent.ROLL_OVER` : Similaire à `MOUSE_OVER`, mais avec quelques différences importantes. `ROLL_OVER` n'est distribué qu'une seule fois lorsque la souris entre dans un objet d'affichage, même si elle se déplace à l'intérieur de l'objet. Il est souvent préféré pour optimiser les performances car il réduit le nombre d’événements déclenchés.
Comment utiliser les événements de souris :
Vous utilisez `addEventListener` pour écouter ces événements. Vous spécifiez le type d'événement et une fonction à exécuter lorsque l'événement se produit.
```actionscript
importer flash.events.MouseEvent ;
// Récupère une référence à un objet d'affichage (par exemple, un bouton)
var monBouton:MonBouton =new MonBouton();
addChild(monBouton);
// Ajouter des écouteurs d'événements
myButton.addEventListener(MouseEvent.CLICK, handleClick);
myButton.addEventListener(MouseEvent.MOUSE_OVER, handleMouseOver);
myButton.addEventListener(MouseEvent.MOUSE_OUT, handleMouseOut);
// Fonctions du gestionnaire d'événements
function handleClick(event:MouseEvent):void {
trace("Bouton cliqué!");
// Ajoutez votre logique de clic de bouton ici
}
function handleMouseOver(event:MouseEvent):void {
trace("Survolez le bouton !");
// Changer l'apparence du bouton, etc.
}
function handleMouseOut(event:MouseEvent):void {
trace("Souris hors bouton !");
// Restaurer l'apparence du bouton, etc.
}
```
Considérations importantes :
* Événement bouillonnant : Les événements de la souris apparaissent dans la liste d'affichage. Cela signifie que si un événement se produit sur un objet enfant, il sera également distribué sur son parent, et ainsi de suite dans la hiérarchie. Vous pouvez utiliser `event.stopPropagation()` pour empêcher ce bouillonnement.
* Ciblage : La propriété `event.target` d'un objet MouseEvent fournit une référence à l'objet d'affichage qui a initialement reçu l'événement. Ceci est crucial lorsqu’il s’agit d’objets imbriqués ou de bouillonnement d’événements.
* Performances : Une utilisation excessive de `MOUSE_MOVE` peut avoir un impact sur les performances, en particulier dans les applications complexes. Utilisez-le avec parcimonie et envisagez des méthodes alternatives si vous avez besoin de mises à jour fréquentes en fonction de la position de la souris. `ROLL_OVER` et `ROLL_OUT` sont généralement de meilleurs choix pour les effets de survol.
Ces événements de souris sont fondamentaux pour créer des applications interactives et réactives dans ActionScript 3. Comprendre comment les utiliser efficacement est essentiel pour développer des projets Flash réussis. N'oubliez pas de consulter la référence du langage et des composants Adobe ActionScript 3.0 pour obtenir les informations les plus détaillées.
|