Captura da entrada do mouse

Flash Player 9 e posterior, Adobe AIR 1.0 e posterior

Os cliques criam eventos de mouse que podem ser usados para acionar funções interativas. Você pode adicionar um ouvinte de eventos ao palco para ouvir eventos de mouse que ocorrem em qualquer lugar no arquivo SWF. Também é possível adicionar ouvintes de eventos a objetos no palco que herdam modelos de InteractiveObject (por exemplo, Sprite ou MovieClip); esses ouvintes são acionados quando o objeto é clicado.

Assim como os eventos de teclado, os eventos de mouse aparecem em balões. No exemplo a seguir, como square é filho de Stage, o evento é enviado a partir do objeto square da entidade gráfica, bem como do objeto Stage quando se clica em square:

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

No exemplo anterior, observe que o evento de mouse contém informações de posição sobre o clique. As propriedades localX e localY contêm o local do clique no filho mais inferior da cadeia de exibição. Por exemplo, clicar no canto superior esquerdo de square registra as coordenadas de local [0,0] porque este é o ponto de registro de square . Como alternativo, as propriedades stageX e stageY referem-se às coordenadas globais do clique no palco. O mesmo clique registra [50,50] para essas coordenadas, pois square foi movido até elas. Esses dois pares de coordenadas podem ser úteis dependendo do modo como deseja responder à interação do usuário.

Nota: No modo de tela cheia, você pode configurar o aplicativo para usar o travamento de mouse. O travamento do mouse desativa o cursor e permite o movimento sem restrições do mouse. Para obter mais informações, consulte Trabalho com o modo de tela cheia .

O objeto MouseEvent também contém as propriedades boolianas altKey , ctrlKey e shiftKey . Você pode usar essas propriedades para verificar se a tecla Alt, Ctrl ou Shift também está sendo pressionada ao mesmo tempo em que o clique do mouse.

Arrastando Sprites pelo palco

Você pode permitir que os usuários arrastem um objeto Sprite pelo palco usando o método startDrag() da classe Sprite. O código a seguir mostra um exemplo disso:

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 obter mais detalhes, consulte a seção sobre a criação da interação de movimentação do mouse em Alteração da posição .

Arrastar e soltar no AIR

No Adobe AIR, você pode permitir a ação de arrastar e soltar para que os usuários arrastem dados para o seu aplicativo e a partir dele. Consulte mais detalhes em Arrastar e soltar no AIR .

Personalização do cursor do mouse

O cursor do mouse (ponteiro) pode ser ocultado ou alternado para qualquer objeto de exibição no palco. Para ocultar o cursor do mouse, chame o método Mouse.hide() . Personalize o cursor chamando Mouse.hide() , ouvindo o evento MouseEvent.MOUSE_MOVE no palco e definindo as coordenadas de um objeto de exibição (seu cursor personalizado) com as propriedades stageX e stageY do evento. O exemplo a seguir ilustra uma execução básica dessa tarefa:

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