Rilevamento dell'input da mouse

Flash Player 9 e versioni successive, Adobe AIR 1.0 e versioni successive

I clic del mouse creano degli eventi del mouse che possono essere utilizzati per attivare delle funzionalità interattive. Un listener di eventi può essere aggiunto allo stage per intercettare gli eventi del mouse che si verificano in qualunque punto all'interno del file SWF. È possibile anche aggiungere dei listener di eventi agli oggetti sullo stage che ereditano da InteractiveObject (ad esempio, Sprite o MovieClip); questi listener vengono attivati quando si fa clic sull'oggetto.

Come accade con gli eventi da tastiera, anche gli eventi del mouse si propagano. Nell'esempio seguente, dal momento che square è un elemento secondario dello stage, l'evento viene inviato sia dallo Sprite square che dall'oggetto Stage quando si fa clic sul quadrato:

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

Nell'esempio precedente, notare che l'evento mouse contiene le informazioni sul clic. Le proprietà localX e localY contengono la posizione del clic sull'elemento di livello più basso nella catena di visualizzazione. Se, ad esempio, si fa clic sull'angolo in alto a sinistra di square vengono visualizzate le coordinate locali [0,0], dal momento che si tratta del punto di registrazione di square . In alternativa, le proprietà stageX e stageY fanno riferimento alle coordinate globali del clic sullo stage. Lo stesso clic visualizza [50,50] per queste coordinate, dal momento che square è stato spostato in corrispondenza di queste coordinate. Entrambe queste coppie di coordinate possono essere utili a seconda del tipo di risposta che si desidera attribuire all'interazione dell'utente.

Nota: nella modalità a schermo intero è possibile configurare l'applicazione in modo da utilizzare il blocco del mouse. Il blocco del mouse disattiva il cursore e abilita il movimento svincolato del mouse. Per ulteriori informazioni, vedete Uso della modalità a schermo intero .

L'oggetto MouseEvent contiene le proprietà booleane altKey , ctrlKey e shiftKey , che è possibile utilizzare per verificare se al momento del clic del mouse viene premuto anche il tasto Alt, Ctrl o Maiusc.

Trascinamento di oggetti Sprite sullo stage

Potete consentite agli utenti di trascinare un oggetto Sprite sullo stage utilizzando il metodo startDrag() della classe Sprite. Nel codice seguente ne viene illustrato un esempio:

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

Per ulteriori dettagli, vedete la sezione sulla creazione di interazioni trascinamento mouse in Modifica della posizione .

Trascinamento della selezione in AIR

In Adobe AIR, potete abilitare il supporto del trascinamento della selezione per consentire agli utenti di trascinare dati dentro e fuori da un'applicazione. Per ulteriori dettagli, vedete Trascinamento in AIR .

Personalizzazione del cursore del mouse

Il cursore del mouse (puntatore) può essere nascosto o sostituito con qualunque oggetto di visualizzazione sullo stage. Per nascondere il cursore del mouse, chiamate il metodo Mouse.hide() . È possibile personalizzare il cursore chiamando Mouse.hide() , intercettando sullo stage l'evento MouseEvent.MOUSE_MOVE e impostando le coordinate di un oggetto di visualizzazione (il cursore personalizzato) sulle proprietà stageX e stageY dell'evento. Nell'esempio seguente viene illustrata un'esecuzione di base di questa operazione:

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