Comunidad de diseño web y desarrollo en internet online

Problema Drag & Drop

Citar            
MensajeEscrito el 19 Jul 2010 04:12 pm
Hola a todos.
Estoy creando una aplicacion utilizando el Adobe Flash Builder en AS3 y tengo un problema con el drag & drop.
He dibujado unos circulos por pantalla que representan palabras y he hecho el drag & drop, por lo tanto puedo moverlos por pantalla. Una vez ke sueltas el raton (MOUSE_UP) los circulos vuelven a su posicion original.
El problema es ke cuando suelto un circulo encima de otro (no siempre) el circulo se queda en esa posicion y no vuelve a la original. Si haces un click encima vuelve. Por ke sucede esto?
Intento quitar los "event listeners" pero no funciona.

Muchas gracias.

Un saludo.

Por Programmer

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Jul 2010 07:23 pm
Mira usando currentTarget en vez de target

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 20 Jul 2010 07:17 am
Ya lo he probado y tp funciona.
public function pararDrag(e:MouseEvent):void
{
(e.currentTarget as Circulo).stopDrag();
//this.stopDrag();
...
}

Como podeis ver tb he probado con el this y nada. No entiendo porque pasa.
Circulo es la clase en la ke estoy (creada x mi)

Gracias x la respuesta.

Un saludo.

Por Programmer

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Jul 2010 12:12 pm
Lo primero: saber quien es quien. Traza target y currentTarget

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Jul 2010 08:33 am
Okey, muxas gracias. No lo he solucionado pero x lo menos ahora se xke pasa. El problema es ke se cambia el objeto sobre el ke estoy haciendo el drag. Ahora toca solucionarlo.
De nuevo muchas gracias.

Por Programmer

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Jul 2010 10:58 am
El evento tiene tres fases y va de arriba hacia abajo para luego volver a subir, es decir tienes que poder manejarlo. ¿Tiene el círculo de abajo asociado algún evento de Mouse? Luego asegúrate que cuando lo arrastras, esté siempre por encima de todo, sino pasará por debajo de los otros círculos y perderás sus eventos. Para tenerlo siempre encima puedes usar algo así en el handler del CLICK

this.swapChildrenAt(this.getChildIndex(evt.target), this.numChildren-1);

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Jul 2010 04:55 pm
Okey. Ya lo he solucionado.
Me he almacenado en una variable estatica dentro de la clase el objeto actual que estaba "drageando" y he hecho el stopDrag de ese objeto en vez de this.
En principio pasa por encima de todos, pero si alguna vez me da problemas con eso lo usare ;).

Muchas gracias.

Un saludo.

Por Programmer

2 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.