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

Author

Sono un Creative Strategist con più di 10 anni di esperienza in strategie digitali. Il mio ruolo di Stratega consiste nell’ideare e sviluppare concept creativi per progetti multicanale, individuando le attivazioni e dinamiche di Marketing da applicare attraverso un approccio strategico.

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