Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/08/2010, 20:37
polo_W12
 
Fecha de Ingreso: enero-2008
Ubicación: Concepción, Chile
Mensajes: 76
Antigüedad: 16 años, 9 meses
Puntos: 3
Respuesta: Un pequeño Regalito un Simple Drag and Drop

Ahora el mismo ejercicio desarrollado con ActionScript 3

Código ACTIONSCRIPT:
Ver original
  1. //Primero que todo hay que crear dos clips uno llamado drag y el otro drop.
  2. //Obviamente Drag sera el clip a Arrastrar y Drop sera la zona Sensible en la
  3. //cual deberia caer el clip de drag.
  4. //todo lo demás es automático
  5. //si el Drag no tiene una zona sensible valida automaticamente se vuelve
  6. // a la coordenada de donde salio.
  7.  
  8. var dropped:MovieClip   = drop;
  9. var dragger:MovieClip   = drag;
  10. var back:MovieClip      = new MovieClip();
  11. var curclip:MovieClip   = new MovieClip()
  12. back.x                  = dragger.x;
  13. back.y                  = dragger.y;
  14. dragger.init            = back;
  15.  
  16. dragger.addEventListener(MouseEvent.MOUSE_DOWN, comienzadrag);
  17. dragger.addEventListener(MouseEvent.MOUSE_UP, finalizadrag);
  18.  
  19. function comienzadrag(a:MouseEvent):void{
  20.     var clip:MovieClip  = a.currentTarget as MovieClip;
  21.     curclip             = clip;
  22.     stage.addEventListener(MouseEvent.MOUSE_UP, releaseoutside);
  23.     clip.startDrag(false, null);
  24. }
  25.  
  26. function finalizadrag(a:MouseEvent):void{
  27.     var clip:MovieClip  = a.currentTarget as MovieClip;
  28.     clip.stopDrag();
  29.     var qdrop:* = clip.dropTarget;
  30.     if(qdrop){
  31.         var pt:MovieClip = qdrop.parent as MovieClip;
  32.         if(pt==dropped){
  33.             backmovie(clip, pt);
  34.         }else{
  35.             backmovie(clip, clip.init);
  36.         }
  37.     }else{
  38.         backmovie(clip, clip.init);
  39.     }
  40. }
  41.  
  42. function releaseoutside(a:MouseEvent):void{
  43.     if(curclip){
  44.         var pt:MovieClip    = curclip.parent as MovieClip;
  45.         curclip.stopDrag();    
  46.         if(a.target==stage){
  47.             backmovie(curclip, curclip.init);      
  48.             stage.removeEventListener(MouseEvent.MOUSE_UP, releaseoutside);
  49.         }else{
  50.             curclip         = null;
  51.         }
  52.     }
  53. }
  54.  
  55. function backmovie(a:MovieClip, b:MovieClip):void{
  56.     a.x    = b.x;
  57.     a.y    = b.y;
  58. }

Espero le sea de ayuda a alguna persona.
Saluda Atte.
Claudio Barrera Asencio.