Tutorial Flash AS3: Drag & Drop Trascinare un Oggetto

- Letture: 2.827

Continuano i Tutorial di AS3 su JuliusDesign, oggi andiamo a vedere come Trascinare un Oggetto in ActionScript3

Vi ricordate in ActionScript 2 come si faceva vero?

Vediamo insieme il codice ActionScript 3:

// Imposto le coordinate iniziali del clip
var startX:Number;
var startY:Number;
// Associo gli eventi MOUSE_DOWN e MOUSE_UP al clip
rosso_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
rosso_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);
function pickUp(event:MouseEvent):void {
event.target.startDrag(true);
stato.text = "L'hai preso!";
event.target.parent.addChild(event.target);
startX = event.target.x;
startY = event.target.y;
}
function dropIt(event:MouseEvent):void {
//In caso rilascio il clip ROSSO_MC
event.target.stopDrag();
//Imposto il mio elemento TARGET
var myTargetName:String = "verde_mc";
var myTarget:DisplayObject = getChildByName(myTargetName);
stato.text = "Ti è scappato?";
//Se il mio clip ROSSO_MC collide con VERDE_MC
if (event.target.dropTarget != null && event.target.dropTarget.parent == myTarget) {
stato.text = "Bravo!";
event.target.removeEventListener(MouseEvent.MOUSE_DOWN, pickUp);
event.target.removeEventListener(MouseEvent.MOUSE_UP, dropIt);
// Disabilita il clip filmato dallo stato pulsante
event.target.buttonMode = false;
event.target.x = myTarget.x;
event.target.y = myTarget.y;
} else {
//se vuoi farlo tornare alle coordinate iniziali utilizza il seguente codice
//event.target.x = startX;
//event.target.y = startY;

}
}
// Abilita il clip filmato come fosse un pulsante
rosso_mc.buttonMode = true;

Come al solito ecco i file sorgenti con i quali approcciarsi meglio al codice, alla prossima lezione di AS3

Scarica il sorgente
Guarda il Tutorial

Stratega, Docente, Speaker con più di 12 anni di esperienza in strategie creative multicanale. Oggi sono Partner & Chief Innovation Officer di ThinkingHat, Innovation Studio specializzato in tecnologie emergenti per aziende e brand audaci.

4 Commenti

  1. Grazie Julius, sto imparando AS3 grazie anche a te ;) sei il migliore chiaro e preciso

  2. Ciao, volevo farti una domanda su un progetto che sto realizzando, da codice creo un oggetto video e definisco la sua posizione (sempre da codice) all’interno di una cornice, realizzata nello stage. E’ possibile trascinare entrambi?

  3. Ciao Julius, puoi aiutarmi?
    devo fare una piccola variante al drag & drop: devo impostare come target un Movieclip creato run-time (una foto caricata da remoto).
    Ho provato con:
    (myMC.name impostato subito dopo la sua creazione)

    var myTargetName:String = myMC.name;

    ma non funziona.. perchè?

Commenti