Actionscript 3.0: Arrastrar y soltar elementos con startDrag() y stopDrag()

Actionscript 3.0: Arrastrar y soltar elementos con startDrag() y stopDrag()

Etiquetas: startDrag stopDrag

Imagen en reemplazo de flash
Este ejemplo de Actionscript 3.0 básico muestra como arrastrar y soltar elementos con las function startDrag() y stopDrag() de Flash.

  1. /* En el escenario hay un clip con el nombre: "Cuadrado_mc".
  2. A este clip le añadimos dos eventos: MOUSE_DOWN(pulsar) y MOUSE_UP(soltar), que al reproducirse
  3. llaman a la función que hemos indicado, pasándole como parámetro un objeto de tipo MouseEvent
  4. que contiene ciertos parámetros dentro. Uno de esos parametros es target, y contiene una referencia 
  5. al objeto que ha producido el evento (El clip sobre el que hemos hecho click o soltado).
  6. */
  7. Cuadrado_mc.addEventListener(MouseEvent.MOUSE_DOWN,Arrastrar);
  8. Cuadrado_mc.addEventListener(MouseEvent.MOUSE_UP,Soltar);
  9. function Arrastrar(e:MouseEvent){
  10. 	e.target.startDrag()
  11. }
  12. function Soltar(e:MouseEvent){
  13. 	e.target.stopDrag();
  14. }

Descargar archivos

Comentarios
    • Autor
    • Cerni
    Estoy aprendiendo mucho con tu Blog. Llevo un par de días mirando las posibilidades de As3 con respecto a As2, y me está gustando. Este tip es tan simple como bueno. Pero estoy investigando la forma de restringir el area de arrastre. Lo he conseguido, pero si suelto el botón fuera de la misma al volver a arrastrarlo no me funciona del todo bien. ¿podrías profundizar un poco por aquí? Yo sigo en ello, si consigo algo lo publicaré. Gracias por el Blog.
    • Autor
    • esedeerre
    Buenas, eso sucede porque Flash no puede detectar el MouseUp del ratón al producirse fuera del escenario, por lo que no se ejecuta la función Soltar.
    Una posible solución sería registrar el evento MouseOut del escenario, y hacer un stopDrag de Cuadrado_mc cuando se produce.
    De todas formas Flash tiene bastantes cosas de estas, que parecen muy sencillas de hacer pero luego te pueden hacer perder una tarde tranquilamente.
    • Autor
    • marco
    eres un trome man gracis por tu blog
    • Autor
    • CeSiTaR
    Pero si por ejemplo tengo (a_mc, b_mc, c_mc).Si se arrastran los 3, pero quiero saber como hago para que a_mc se pose encima de b_mc, y al hacer clik y arrastrar de nuevo b_mc, se pose ese encima de a_mc.. ese smi problema depues todo esta bien chevere
    • Autor
    • Jonathan
    cordial saludo me ha servido mucho tu blog, en verdad gracias por la informacion. Como podria hacer lo mismo del arrastre pero en forma de rompecabezas, es decir, que si la ficha no es puesta en el lugar correcto, se devuelva a la posicion original donde estaba.... gracias por la atencion prestada
    • Autor
    • gracias
    por favor quisiera un sitio donde pudiera encontra muchos action ya sea en 3 o en 2 para diferentes proyectos.
    • Autor
    • cesitar
    muy bueno. sigue asi perro
    • Autor
    • Tebe
    Hola! Gracias a tu blog he conseguido arrastrar un objeto para una proyecto de la universidad...lo malo es que solo puedo mover uno, si pongo la función más de una vez me da error por estar duplicada, ¿qué hago? Muchas gracias de antemano
    • Autor
    • Tebe
    Bueno ya he solucionado lo de jugar con varios objetos, ahora solo me queda una duda que no encuentro por ningún lado. Te explico lo que estoy haciendo por si me puedes echar una mano, ok? La historia es el típico juego de vestir a la muñeca, la cuestion es que tienes que ponerle una ropa concreta. Tal y como lo tengo ahora puedo arrastrar todas las piezas, pero me falta algún elemento que me verifique cuales son las buenas y cuales las malas. El profesor me lo enseñó con un simple icono mc de Si o No que se marcaba como SI cuando se ponia la prenda buena sobre la muñeca. La idea original era que la prenda original tuviera como un imán sobre la muñeca y la erronea volviera al sitio de origen. En fin, por ahora solo puedo arrastrar y el profesor usa AS 2.0 por lo que su idea me da error y hace que me pete el drag... Dime que me puedes ayudar :(
    • Autor
    • esteban
    Quisiera hacerte una consulta a ver si me podes ayudar. Yo estoy haciendo un juego en el que arrastro y si coliciona contra un "target" ocupa su posicion,mi duda es, como tendria que hacer para que cuando ocupa esa posicion no se lo pueda arrastrar mas?
    • Autor
    • RicWhitePence
    Por que no:)
    • Autor
    • Misato
    Muchas gracias por todos los tutoriales, la verdad son bastante faciles de entender, ya que estoy migrando de AS2 a AS3. Muchas gracias de verdad!
    • Autor
    • cubasdc
    cómo se hace para que sólo se pueda arrastrar horizontalmente??
    • Autor
    • pedrinis
    quisiera descargar
    • Autor
    • LemeFeseMib
    Hello, i read your site, this a best site from me, thanks!
Dejar un comentario
Tu nombre (obligatorio):

E-mail (obligatorio, no se mostrará):

Web:

Comentario: