Comunidad de diseño web y desarrollo en internet online

comprobar que dos clips están en el mismo sitio

Citar            
MensajeEscrito el 20 Jul 2007 08:31 am
Tengo un problema. Tengo un clip que he movido mediante startDrag/stopDrag, es decir que al arrastrar y poner un clip encima de otro, se queda ahí.
Lo que quiero es que cuando el clipA esté en esa situación (encima del clipB), pase al siguiente fotograma.
Este es el código que he utilizado, y no me funciona:

Código :

if (_root.clipA._x==_root.clipB._x&&_root.clipA._y==_root.clipB._y) {
   gotoAndStop(6);

}


¿qué puedo hacer?

gracias, gracias!

Por Araitz

42 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 20 Jul 2007 10:53 am

Código :

if((Math.abs(_root.clipA._x-_root.clipB._x)<=10)  && (Math.abs(_root.clipA._y-_root.clipB._y)<=10)) {
gotoAndStop(6);
};



Es dificil que estén EXACTAMENTE en la misma posición, por eso usamos una horquilla de +-10 píxeles (puedes hacerla menor si quieres más precisión)

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 20 Jul 2007 11:26 am
Gracias, pero me sigue sin funcionar.
No se qué hacer!!

Por Araitz

42 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 20 Jul 2007 11:33 am
Pues empieza a depurar, a ver que está fallando, si las coordenadas, si los clips o qué

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 21 Jul 2007 05:17 am
En qué evento ejecutás esa acción? Puede que el problema esté ahí.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 21 Jul 2007 07:06 pm
usa hitTest() en estos casos es mejor :P (claro si solo es un drag and drop)

Por El_Beto_TM

156 de clabLevel

1 tutorial

Genero:Masculino  

Mexicali, Baja California

firefox
Citar            
MensajeEscrito el 21 Jul 2007 07:17 pm

El_Beto_TM escribió:

usa hitTest() en estos casos es mejor :P (claro si solo es un drag and drop)


No, eso para nada es buena idea, de hecho es una horrible idea.

Imagino dos cuadrados (AZUL y ROJO - olvida el blanco (si lo ves) que es para que se ajuste el dibujo), si se tocan dos esquinas opuestas

######
######
#####
######
###########
###########

es decir, se tocan en la parte turquesa (azul claro) , pues evidentemente no están en las mismas coordenadas, pero el hitTest diría que se están tocando.

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 21 Jul 2007 07:43 pm
... para eso puedes especificar que se base en el centro de una de las figuras para hacer el hitTest, de esa manera cuando el centro lo toque esa esquina ya se puede considerar que el clip esta encima, se puede incluso cambiar las coordenadas antes de que se vaya al siguiente fotograma, además como mencioné, solo si es un Drag and Drop, de lo contrario pues te doy toda la razón :D

Por El_Beto_TM

156 de clabLevel

1 tutorial

Genero:Masculino  

Mexicali, Baja California

firefox
Citar            
MensajeEscrito el 21 Jul 2007 08:32 pm
No conviene ni siquiera de esa manera.

Pensá que si lo hace con hitTest va a perder control de la tolerancia del programa en cuanto a la cercanía de los MCs.

Además, como el código de _CONEJO funciona, el problema no es el código, sino cómo lo usa.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 23 Jul 2007 07:29 am
HernanRivas
MensajePublicado: Sab Jul 21, 2007 5:17 am
En qué evento ejecutás esa acción? Puede que el problema esté ahí.


Yo ejecuto la acción en el primer fotograma. Pongo esto:

Código :

stop();

clipAinicioX = clipA._x;
clipAinicioY = clipA._y;

clip1inicioX = clip1._x;
clip1inicioY = clip1._y;

if((Math.abs(_root.clipA._x-_root.clipB._x)<=150)  && (Math.abs(_root.clipA._y-_root.clipB._y)<=150)) {
gotoAndStop(6);
}


De todas formas no he tenido tiempo y no he depurado el código, pero tengo que seguir haciendo pruebas.

Gracias a todos!!

Por Araitz

42 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 23 Jul 2007 07:57 am
Bueno, ya he hecho más pruebas y nada. Creo que la cosa es eso, cómo utilizar el código de _CONEJO. No se si como yo lo he puesto ahí arriba estará bien. Ah, y he puesto 150 porque estaba haciendo pruebas.

Por Araitz

42 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 23 Jul 2007 09:05 am
mételo dentro de un enterFrame, si no, sólo se ejecutará una ÚNICA VEZ al inicio de la película y ya.

Código :

_root.createEmptyMovieClip("nada",666);
_root.nada.onEnterFrame = function() {

if((Math.abs(_root.clipA._x-_root.clipB._x)<=10)  && (Math.abs(_root.clipA._y-_root.clipB._y)<=10)) {
gotoAndStop(6);
};
};

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 23 Jul 2007 02:32 pm
Si está arrastrando clips y soltándolos, puede ahorrar recursos ejecutando esa acción en el mouseUp (es decir, junto al stopDrag)

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 24 Jul 2007 08:13 am
Muchas muchas gracias _CONEJO!! ya me ha salido, eres el mejor!

Por Araitz

42 de clabLevel



Genero:Femenino  

firefox

 

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