Comunidad de diseño web y desarrollo en internet online

Depths. Que un clip se ponga delante respetando profundidad

Citar            
MensajeEscrito el 28 Jun 2005 03:33 pm
Tengo seis clips (los llamaré 1,2,3,4,5 y 6). Cada clip ocupa una capa de mi línea de tiempo. Quiero que, por ejemplo, el 4 se ponga delante de los demás "4.swapDepths(0)" y que el orden de los otros se mantenga igual (1,2,3,5,6 y 4). Si pongo ahora el 2 delante "2.swapDepths(0)", quiero que el orden sea 1,3,5,6,4 y 2, respetando el orden del paso anterior.
Supongo que una solución consistiría en partir de la profundidad por defecto (-16383) e ir aumentando un entero en la profundidad del clip que va a ir delante de los demás cada vez que se llama al clip en cuestión.
¿Alguien sabe cómo hacerlo?
He buscado por tema "swap depths" y sólo he visto tres entradas que no me orientan demasiado. :wink:

Por louganis

22 de clabLevel



Genero:Masculino  

Islas Canarias

firefox
Citar            
MensajeEscrito el 28 Jun 2005 03:48 pm
hmm yo lo uso de esta manera

Código :

_root.unmc.swapDepths(_root.getNextHighestDepth());


saca el valor mas alto de profundidad, verifica la ruta de donde estan si estan en el _root con ese codigo es suficiente.

Saludos :D

PD: un detalle que no entiendo es porque mantener el orden...

Por flasher

Invitado



 

firefox
Citar            
MensajeEscrito el 28 Jun 2005 04:36 pm
Pues yo te daría una solución poco ortodoxa, pero que funciona.

Primero lo ideal sería colocar cada clip en la profundidad adecuada de acuerdo con su orden (y su nombre):

Código :

for(var i=1;i<=6;i++){
  _root[i].swapDepths(i);
}


Luego utilizar un nivel pivote que sirva para elevar la profundidad del clip elegido, por ejemplo el nivel 7, y llevar el control del clip que está arriba en esos momentos, digamos en una variable arriba:

Código :

function elevar(clip) {
   _root[arriba].swapDepths(parseInt(arriba));
   _root[clip].swapDepths(7);
   arriba = clip;
}


Así, el que esté elevado en ese momento te quedará en el nivel 7 y los demás conservarán su orden.

Saludos.

Por ExGaul

Claber

180 de clabLevel



Genero:Masculino  

Cereté - Colombia

firefox
Citar            
MensajeEscrito el 28 Jun 2005 05:30 pm
Gracias, Flasher y ExGaul.
He probado con la solución de Flasher, pero mi menú se sigue comportando como si la profundidad no funcionase.
Mis clips y botones están todos en el _root, así que el código debería funcionar ¿no?
La solución de ExGaul pondría los submenús en la profundidad 7, pero esto no sería una solución elegante, porque yo quiero que un submenú aparezca sobre otro sin que éste desaparezca al instante (y en la profundidad 7 sólo puede haber un clip a la vez, ¿no?)

Por louganis

22 de clabLevel



Genero:Masculino  

Islas Canarias

firefox
Citar            
MensajeEscrito el 28 Jun 2005 05:39 pm
Pero déjenme hacerles una pregunta simple, en la línea de la solución apuntada por Flasher.
Supongamos que tengo mis profundidades de partida (1,2,3,4,5 y 6) para mis clips (1,2,3,4,5 y 6) respectivamente.
Cuando seleccione uno de ellos, quiero que me aparezca en profundidad 7. Cuando seleccione otro cualquiera, quiero que aparezca en profundidad 8... y así sucesivamente. ¿Cómo puedo hacerlo? Y lo más importante: ¿es recomendable hacerlo así?

Por louganis

22 de clabLevel



Genero:Masculino  

Islas Canarias

firefox
Citar            
MensajeEscrito el 28 Jun 2005 05:48 pm
Pues me parece menos elegante lo que pretendes hacer, eso de aumentar la profundidad sucesivamente sería malgastar recursos innecesariamente.

De igual manera, jamás podrás poner dos clip en un mismo nivel, lo que interesaría es poner arriba al que necesitas en el momento, y luego bajarlo o intercambiarlo según te parezca.

Saludos.

Por ExGaul

Claber

180 de clabLevel



Genero:Masculino  

Cereté - Colombia

firefox
Citar            
MensajeEscrito el 28 Jun 2005 07:04 pm
Tienes razón. A mí tampoco me parece una solución elegante. Pero es que necesito tener un clip a la vista mientras el siguiente se carga y se muestra por encima. La interacción es siempre entre los dos clips superiores (el que estaba en lo más alto y el que entra ahora por encima, bajándolo un nivel y ocupando después el suyo) ESTA ES LA CLAVE (¿cómo hacerlo?).
Los otros cuatro es cierto que no cuentan y que pueden estar por debajo en cualquier orden.

Por louganis

22 de clabLevel



Genero:Masculino  

Islas Canarias

firefox
Citar            
MensajeEscrito el 28 Jun 2005 07:16 pm
pero si funciona!!



bajar

Saludos :D

Por flasher

Invitado



 

firefox
Citar            
MensajeEscrito el 28 Jun 2005 10:20 pm
Gracias por las molestias, FLASHER. Muy amable. Efectivamente, en tu ejemplo funciona perfectamente, pero la cosa se complica cuando intentas que los clips respondan a eventos de botón, no sólo para superponerlos (que lo he probado y funciona), sino para añadirles desplazamientos (tweenings). Tengo entendido que si se cambia de nivel un símbolo durante una interpolación (tweening), ésta se detiene. Así que aquí comienzan los problemas.
Es una pena no saber cómo enviarte el archivo 'profundidad.fla' con mis retoques, para que veas a qué me refiero.

Por louganis

22 de clabLevel



Genero:Masculino  

Islas Canarias

firefox

 

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