Capture des entrées de souris

Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures

Les clics de souris créent des événements souris qui permettent de déclencher une fonctionnalité interactive. Il est possible d’ajouter un écouteur d’événement à la scène afin d’écouter les événements de souris qui se produisent à tout endroit du fichier SWF. Vous pouvez également ajouter des écouteurs d’événement à des objets sur la scène qui héritent de InteractiveObject (par exemple, Sprite ou MovieClip) ; ces écouteurs sont déclenchés lorsque vous cliquez sur l’objet.

Comme les événements de clavier, les événements de souris se propagent vers le haut. Dans l’exemple suivant, square étant un enfant de la scène, l’événement est distribué à la fois du sprite square et de l’objet scène en cas de clic sur le carré :

var square:Sprite = new Sprite(); 
square.graphics.beginFill(0xFF0000); 
square.graphics.drawRect(0,0,100,100); 
square.graphics.endFill(); 
square.addEventListener(MouseEvent.CLICK, reportClick); 
square.x = 
square.y = 50; 
addChild(square); 
 
stage.addEventListener(MouseEvent.CLICK, reportClick); 
 
function reportClick(event:MouseEvent):void 
{ 
    trace(event.currentTarget.toString() +         " dispatches MouseEvent. Local coords [" +         event.localX + "," + event.localY + "] Stage coords [" +         event.stageX + "," + event.stageY + "]"); 
}

Dans l’exemple précédent, notez que l’événement de souris contient des informations sur l’endroit où le clic s’est produit. Les propriétés localX et localY indiquent l’emplacement du clic sur l’enfant le plus bas de la chaîne d’affichage. Par exemple, si vous cliquez dans l’angle supérieur gauche de square, les coordonnées locales [0,0] sont signalées car il s’agit du point d’alignement de square. Autrement, les propriétés stageX et stageY se réfèrent aux coordonnées globales du clic sur la scène. Le même clic signale [50,50] pour ces coordonnées car square y a été déplacé. Ces deux paires de coordonnées peuvent être utiles, selon la façon dont vous souhaitez répondre à l’interaction utilisateur.

Remarque : en mode plein écran, vous pouvez configurer l’application de façon à activer le verrouillage de la souris. Le verrouillage de la souris désactive le curseur et permet de déplacer la souris sans aucune limite. Pour plus d’informations, voir Utilisation du mode Plein écran.

L’objet MouseEvent contient aussi les propriétés booléennes altKey, ctrlKey et shiftKey. Vous pouvez utiliser ces propriétés pour vérifier si l’utilisateur appuie également sur la touche Alt, Ctrl ou Maj au moment du clic de la souris.

Glissement de sprites sur la scène

Vous pouvez autoriser les utilisateurs à faire glisser un objet Sprite sur la scène à l’aide de la méthode startDrag() de la classe Sprite. Le code suivant en est un exemple :

import flash.display.Sprite; 
import flash.events.MouseEvent; 
 
var circle:Sprite = new Sprite(); 
circle.graphics.beginFill(0xFFCC00); 
circle.graphics.drawCircle(0, 0, 40); 
 
var target1:Sprite = new Sprite(); 
target1.graphics.beginFill(0xCCFF00); 
target1.graphics.drawRect(0, 0, 100, 100); 
target1.name = "target1"; 
 
var target2:Sprite = new Sprite(); 
target2.graphics.beginFill(0xCCFF00); 
target2.graphics.drawRect(0, 200, 100, 100); 
target2.name = "target2"; 
 
addChild(target1); 
addChild(target2); 
addChild(circle); 
 
circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown)  
 
function mouseDown(event:MouseEvent):void 
{ 
    circle.startDrag(); 
} 
circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); 
 
function mouseReleased(event:MouseEvent):void 
{ 
    circle.stopDrag(); 
    trace(circle.dropTarget.name); 
}

Pour plus d’informations, voir la section consacrée à la création d’une interaction de type glissement de souris dans Modification de la position.

Opération glisser-déposer dans AIR

Vous pouvez activer la prise en charge d’opérations glisser-déposer dans Adobe AIR pour permettre aux utilisateurs de faire glisser des données vers l’application et en dehors de celle-ci. Pour plus d’informations, voir Opération glisser-déposer dans AIR.

Personnalisation du curseur de la souris

Le curseur de la souris (pointeur de la souris) peut être masqué ou remplacé pour tout objet d’affichage de la scène. Pour masquer ce curseur, appelez la méthode Mouse.hide(). Personnalisez le curseur en appelant Mouse.hide(), en écoutant l’événement MouseEvent.MOUSE_MOVE en provenance de la scène et en définissant les coordonnées d’un objet d’affichage (votre curseur personnalisé) sur les propriétés stageX et stageY de l’événement. L’exemple suivant illustre une exécution de base de cette tâche :

var cursor:Sprite = new Sprite(); 
cursor.graphics.beginFill(0x000000); 
cursor.graphics.drawCircle(0,0,20); 
cursor.graphics.endFill(); 
addChild(cursor); 
 
stage.addEventListener(MouseEvent.MOUSE_MOVE,redrawCursor); 
Mouse.hide(); 
 
function redrawCursor(event:MouseEvent):void 
{ 
    cursor.x = event.stageX; 
    cursor.y = event.stageY; 
}