Comunidad de diseño web y desarrollo en internet online

calcular posicion x inferior de un clip

Citar            
MensajeEscrito el 28 May 2008 08:42 pm
Hola a todos,

tengo una lista de mc que se cargan unos debajo de otro de forma inclinada mediante attachMovieClip() y necesito saber cual es la posicion x inferior de cada mc, para colocar colocar el siguiente en su sitio.

Si los mc no fueran inclinados y apareciesen uno debajo del otro, la posicion de x no cambiaria, pero en mi caso necesito cambiarla cada vez que añado un mc nuevo y además cada mc tiene una altura diferente ¿Cómo podría hacerlo? ¿Hay alguna función que devuelva este valor?

Gracias.

Por merce

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 May 2008 10:32 am
Tendrás que utilizar trigonometria, sabiendo el alto del MovieClip y el angulo de inclinación de este.

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 29 May 2008 02:59 pm
he creado esteas lineas de codigo para que te ayuden a solucionar tu problema, no es la forma mas elegante, ni la mas avanzada tecnicamente, pero funciona....

Pegamos en la pelicula la primera foto:

Código :

attachMovie('foto1', 'foto1', 1);

Creamos un MC vacio y dentro dibujamos un cuadrado,
esto sera el scaner que con hitTest detectaremos
donde acaba la foto 1:

Código :

createEmptyMovieClip('scaner', 0);
with (scaner) {
   lineStyle(1, 0x000000, 50);
   moveTo(0, 0);
   lineTo(0, 20);
   lineTo(20, 20);
   lineTo(20, 0);
   lineTo(0, 0);
}

Colocamos la foto 1 en las coordenadas deseadas
y le damos al scaner exactamente las mismas coordenadas:

Código :

foto1._x = scaner._x=10;
foto1._y = scaner._y=10;

Declaramos una variable (fin_del_mc) con el valor NO
que usaremos para salir del bucle:

Código :

var fin_del_mc:String = 'no';

Y aqui es donde comienza el scaneo de la foto 1
comprobando pixel a pixel la coordenada _x de dicha foto
hasta que (scaner) y (foto1) dejen de solaparse:

Código :

for (a=foto1._x; fin_del_mc == 'no'; a++) {
   if (scaner.hitTest(foto1)) {
      scaner._x = a;
   } else {
      fin_del_mc = 'si';
//ya tendriamos la coordenada _x para la proxima foto2
      x_de_proxima_foto = a;
   }
}

Por teteman

28 de clabLevel



Genero:Masculino  

opera
Citar            
MensajeEscrito el 29 May 2008 03:03 pm
todo lo anterior termina siendo un codigo unico que se escribiria tal que asi:

Código :

attachMovie('foto1', 'foto1', 1);
createEmptyMovieClip('scaner', 0);
with (scaner) {
   lineStyle(1, 0x000000, 50);
   moveTo(0, 0);
   lineTo(0, 20);
   lineTo(20, 20);
   lineTo(20, 0);
   lineTo(0, 0);
}
foto1._x = scaner._x=10;
foto1._y = scaner._y=10;
var fin_del_mc:String = 'no';
for (a=foto1._x; fin_del_mc == 'no'; a++) {
   if (scaner.hitTest(foto1)) {
      scaner._x = a;
   } else {
      fin_del_mc = 'si';
      x_de_proxima_foto = a;
   }
}

Por teteman

28 de clabLevel



Genero:Masculino  

opera
Citar            
MensajeEscrito el 29 May 2008 03:08 pm
Hola,
Hay una propiedad de MC que se llama getBounds. Con esta propiedad puede saber cuáles son los bordes del MC pero tienes que indicarle en relación a qué (el _root, un MC que contiene aal MC que quieres testar, etc).
Te pongo un ejemplo donde el MC del que quiero saber los bordes está en el _root:

esquinas=miclip.getBounds(_root);
borde_de_arriba=esquinas.yMin;
borde_de_abajo=esquinas.yMax;
borde_izquierdo=esquinas.xMin;
borde_derecho=esquinas.xMax;

Las variables obtenidas (borde_de_arriba y borde_de_abajo) serán exactamente la _y del MC llamado "miclip" con respecto al _root. LAs X las tienes en las otras 2 variables.

En la ayuda de FLASH tienes una explicación extensa sobre "getBounds()" pero en principio, tal como te lo he puesto es como funciona.

Saludos

Por pelao

18 de clabLevel



 

msie
Citar            
MensajeEscrito el 29 May 2008 03:13 pm
sorry :S
creo que me he complicado mucho la vida en vez de usar getBouns()

Por teteman

28 de clabLevel



Genero:Masculino  

opera
Citar            
MensajeEscrito el 29 May 2008 03:57 pm
hola, muchiiiiiiiisimas gracias a todos, ahora mismo voy a probarlo , teleman muchas gracias igualmente

Por merce

15 de clabLevel



 

firefox

 

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