Home » AS3 »Efectos »Trucos » Currently Reading:

Drag and Drop en AS3

noviembre 9, 2006 AS3, Efectos, Trucos 6 Comments
Drag and Drop en AS3

Este es un pequeño ejemplo de como hacer un drag & drop de un Movieclip en actionscript 3.

Crearemos en flash9 un Movieclip al que llamaremos “clip”.

En el fotograma añadiremos el siguiente código:

  1. clip.addEventListener(MouseEvent.MOUSE_DOWN, onMouse_Down);
  2. clip.addEventListener(MouseEvent.MOUSE_UP, onMouse_Up);

Con esto asignaremoslos eventos de pulsar y soltar el mouse sobre el clip a las funciones “onMouse_Down” y “onMouse_Up“.

Ahora definiremos estas funciones:

  1. function onMouse_Down(e:Event):void{
  2. clip.startDrag()
  3. }
  4. function onMouse_Up(e:Event):void{
  5. clip.stopDrag();
  6. }

Con esto ya tendríamos el MovieClip “clip” arrastrable.

Este mismo código lo podríamos haber puesto dentro de una clase AS3:

  1. package{
  2. import flash.display.*
  3. import flash.events.*;
  4. //------------------------------------
  5. public class Drag extends MovieClip{
  6. public var clip:MovieClip = new MovieClip();
  7. //------------------------------------
  8. public function Drag(queClip){
  9. clip = queClip
  10. clip.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
  11. clip.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
  12. }
  13. //------------------------------------
  14. private function onMouseDown(e:Event):void{
  15. clip.startDrag()
  16. }
  17. //------------------------------------
  18. private function onMouseUp(e:Event):void{
  19. clip.stopDrag();
  20. }
  21. }
  22. }

Al crear el constructor de la clase deberemos pasarle el MovieClip a arrastrar como parámetro:

  1. import Drag
  2. var drag:Drag = new Drag(clip);

Compártelo:

Drag and Drop en AS3
Visto 18.092 veces

Currently there are "6 comments" on this Article:

  1. eldervaz dice:

    hola, unas de las cosas que me costo averiguar, fue precisamente lo q indicas aqui en la instancia de tu clase


    var drag:Drag = new Drag(clip);

    dado q en el libro de cookbook de as 3.0 nunca mencionan esto, pero esta muy bueno tu aporte.

    Vi que no usaste constructor en tu clase? no hay problemas con eso?.

    saludos

    eldervaz
    pd.- pasame el dato de donde compraste tu dominio *.as :p

  2. admin dice:

    Ups! fallo mio. Si que uso constructor, le cambié el nombre y no me di cuenta al publicarlo.. ya lo cambié
    Drag()
    El domio .as lo compré aqui:
    http://www.active24.es/
    😉

  3. UnManuel dice:

    esta implementacion falla si arrastras el componente por debajo de otro y sueltas el mouse

  4. Elena dice:

    merci!

  5. zorel dice:

    Comment by UnManuel — 28 December, 2011 @ 4:08 pm

    esta implementacion falla si arrastras el componente por debajo de otro y sueltas el mouse

    si quieres evitar ese problema, agregale un listener al stage

    stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);

  6. carlos dice:

    hay una forma de que uno pasa de una escena a otra, ejemplo: arrastrando un objeto en la escena y que al soltar el objeto en la zona indicada me lleve a otro fotograma? es posible??

Comment on this Article:








Twitter: zguillez

AdvertisementAdvertisementAdvertisementAdvertisement

Recibe las novedades por email



Map

Ranking

Codigoactionscript.org: 4.65 sobre 5 (106 valoraciones)

twitter-widget.com