2010-10-13 5 views
0

Je suis nouveau à AS3 et je me demandais s'il y a quelqu'un là-bas qui peut me aider ...multiple élément draggable en une seule cible AS3

Je crée un glisser-déposer l'activité Flash où il y a 1 cible et plusieurs objets draggables. Dans mon cas, j'ai 4 pommes et je veux pouvoir mettre toutes les pommes dans le même panier. Je peux obtenir l'élément draggable dans une cible, mais je ne peux pas obtenir plusieurs articles en un seul draggable cible unique ...

Voici mon code ...

************************************************************** 

import caurina.transitions.*; 
//import flash.geom.Rectangle; 

//var myBoundaries:Rectangle=new Rectangle(68.65,637.8,100,50); 

circle1_mc.addEventListener(MouseEvent.MOUSE_DOWN, drag); 
circle1_mc.addEventListener(MouseEvent.MOUSE_UP, drop); 

function drag(event:MouseEvent):void { 
    //event.target.startDrag(true, myBoundaries); 
    event.target.startDrag(); 
} 

function drop(event:MouseEvent):void { 
    event.target.stopDrag(); 
    var myTargetName:String = "target" + event.target.name; 
    var myTarget:DisplayObject = getChildByName(myTargetName); 
    if(event.target.dropTarget != null && event.target.dropTarget.parent == myTarget){ 
     //trace("hit"); 

     /*Remove the event listeners when a peg is correctly placed*/ 
     event.target.removeEventListener(MouseEvent.MOUSE_DOWN, drag); 
     event.target.removeEventListener(MouseEvent.MOUSE_UP, drop); 
     event.target.buttonMode = false; 

     /*Adjust the peg’s position when it is correctly placed*/ 
     event.target.x = myTarget.x; 
     event.target.y = myTarget.y; 

     /*add tween*/ 
     Tweener.addTween(circle1_mc,{x:68.65,y:637.8,time:1,transition:"easeIn"}); 
    } else { 
     //trace("try again"); 

     /*add tween*/ 
     Tweener.addTween(circle1_mc,{x:97.9,y:64.95,time:1,transition:"easeIn"}); 
    } 

} 

circle1_mc.buttonMode = true; 

************************************************************** 

l'espoir d'entendre bientôt.

Répondre

0

Peut-être en enveloppant les pommes dans un appleContainer (draggableItemContainer?) Puis au lieu de faire glisser des pommes individuelles, vous serez en mesure de se concentrer sur le appleContainer comme votre cible?

+0

Salut Karl, Merci pour votre aide à ce sujet ... ils doivent tous être des éléments séparés, par exemple, tous les fruits rouges dans un panier, vert dans l'autre et d'autres couleurs dans le 3ème –

+0

Dans ce cas peut-être quand un l'utilisateur sélectionné (MouseEvent.MOUSE_DOWN) a la souris sur l'objet. Vous prenez l'objet et trouvez ses pairs dans le conteneur et exécutez startDrag uniquement sur ces objets. Ou, Enveloppez toutes les pommes dans un appleContainer, puis envelopper chaque type de pomme dans greenApples. Ensuite, vous pouvez appliquer la même logique que si vous deviez faire glisser une instance? – karlfreeman

+0

Karl a raison .. Faites trois tableaux ou au besoin. RedApples, GreenApples et ainsi de suite ... Sur le gestionnaire MouseEvent.MOUSE_DOWN, vérifiez si (evt.target.name == RedApples [0] .name) puis faites glisser Toutes les pommes rouges. Sinon, vérifiez pour le vert et ainsi de suite .. Mais vous devez garder le même nom pour toutes les pommes de couleur unique. –

Questions connexes