Comunidad de diseño web y desarrollo en internet online

problema: nombre de clip armando con concatenación

Citar            
MensajeEscrito el 03 Ago 2008 01:03 pm
Hola, soy nuevo el el foro y tengo una consulta.

Tengo varios clip llamados paseo1, paseo2, paseo3.... todos ubicado uno encima del otro, inicialmente con paseo1 arriba de todos. Por otro lado, tengo un botón con el que quiero que, cuando el usuario pique la primera vez traiga arriba al paseo2, cuando pique la segundo traiga arriba a paseo3 y asi sucesivamente. Al botón le arme el siguiente script en el que uso una variable para indicar el nombre el clip que quiero traer adelante que resulta de concatenar la palabra paseo con un número es decir "paseo" + numero y cada vez que el usuario pica en el botón le voy sumando un número.

corredera.paso.onRelease = function() {
apilamiento += 1;
cadena = "paseo" + numero;
cadena.swapDepths(apilamiento);
cadena.gotoAndPlay(1);
numero += 1;
};

el programa en si está bien porque si cambio cadena por paseo2 en las líneas para traerlo adelante y para correrlo, funciona, y también me arma correctamente el nombre del clip paseo2 en la línea donde le asigna valor a cadena porque puse un trace para verificarlo y efectivamente cadena es igual a paseo2, pero parece que es como que no me lo reconoce como nombre del clip porque no me anda. Alguien me puede decir donde está el error o que es lo que me falta hacer.

Muchas Gracias

Por rofi

2 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 03 Ago 2008 05:34 pm
si dices que el código funciona sustituyendo cadena por paseo2, prueba de hacer un cast en el swapDepths

Código :

MovieClip(cadena).swapDepths(apilamiento)

Por ur!

256 de clabLevel



 

Barcelona

firefox
Citar            
MensajeEscrito el 03 Ago 2008 11:54 pm
No puedes darle a un string las propiedades de un MovieClip, por ejemplo si paseo1, paseo2, etc están en la raiz la sintaxis correcta sería:

Código :

_root[cadena].swapDepths(apilamiento);


Y lo mejor para evitar errores, es que guardes en una variable la profundidad más alta y se la asignes al movie deseado:

Código :

var apilamiento:Number = _root.getNextHighestDepth();
_root[cadena].swapDepths(apilamiento);


Así no tienes que ir sumándole una unidad a apilamiento cada vez que presiones a corredera.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 04 Ago 2008 12:16 am
elchininet

Muchísimas gracias, hace dos días que vengo dandole vueltas al tema y no encontraba la solución. Funciona perfecto.

Por rofi

2 de clabLevel



Genero:Masculino  

msie

 

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