Captura de entradas de ratón

Flash Player 9 y posterior, Adobe AIR 1.0 y posterior

Los clics del ratón crean eventos de ratón que pueden utilizarse para activar la funcionalidad de interacción. Se puede añadir un detector de eventos al objeto Stage para detectar los eventos de ratón que se produzcan en cualquier parte del archivo SWF. También se pueden añadir detectores de eventos a objetos del escenario que heredan de InteractiveObject (por ejemplo, Sprite o MovieClip); estos detectores se activan cuando se hace clic en el objeto.

Tal y como sucede con los eventos de teclado, los eventos de ratón se propagarán. En el siguiente ejemplo, dado que square es un objeto secundario de Stage, el evento se distribuirá tanto desde el objeto Sprite square como desde el objeto Stage cuando se haga clic en el cuadrado:

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 + "]"); 
}

En el ejemplo anterior, el evento de ratón contiene información de posición sobre el clic. Las propiedades localX y localY contienen la ubicación donde tuvo lugar el clic en el objeto secundario inferior de la cadena de visualización. Por ejemplo, si se hace clic en la esquina superior izquierda de square , se notifican las coordenadas locales [0,0], ya que es el punto de registro de square . Como alternativa, las propiedades stageX y stageY hacen referencia a las coordenadas globales del clic en el escenario. El mismo clic notifica [50,50] para estas coordenadas, ya que square se movió a estas coordenadas. Ambos pares de coordenadas pueden ser útiles, dependiendo de cómo se desee responder a la interacción del usuario.

Nota: en modo de pantalla completa, es posible configurar la aplicación para usar el bloqueo del ratón. El bloqueo del ratón desactiva el cursor y permite el movimiento ilimitado del ratón. Para obtener más información, consulte Trabajo con el modo de pantalla completa .

El objeto MouseEvent también contiene las propiedades booleanas altKey , ctrlKey y shiftKey . Se pueden utilizar estas propiedades para comprobar si también se está pulsando la tecla Alt, Ctrl o Mayús a la vez que se hace clic con el ratón.

Arrastre de objetos Sprites alrededor del escenario

Puede permitir a los usuarios arrastrar un objeto Sprite alrededor del escenario utilizando el método startDrag() de la clase Sprite. Esto se muestra en el siguiente ejemplo de código:

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); 
}

Para obtener más información, consulte la sección sobre la creación de interacción con el arrastre de ratón en Cambio de posición .

Arrastrar y colocar en AIR

En Adobe AIR, se puede habilitar la compatibilidad con las operaciones de arrastrar y colocar para que los usuarios puedan arrastrar datos dentro y fuera de la aplicación. Para obtener más información, consulte Operación de arrastrar y colocar en AIR .

Personalización del cursor del ratón

El cursor (puntero) del ratón puede ocultarse o cambiarse por cualquier objeto de visualización en el escenario. Para ocultar el cursor del ratón, es necesario llamar al método Mouse.hide() . Para personalizar el cursor hay que llamar a Mouse.hide() , detectar el evento MouseEvent.MOUSE_MOVE en el objeto Stage y establecer las coordenadas de un objeto de visualización (el cursor personalizado) en las propiedades stageX y stageY del evento. El ejemplo siguiente muestra una ejecución básica de esta tarea:

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; 
}