Problema con el método loadMovie

Hola!
Tengo en la película principal un album dinámico de fotos. Cada foto es un movieclip que contiene la imagen, un botón y un campo de texto.
El campo de texto lo uso para introducir el nombre del fichero de la imagen.
Y el botón para cargar más grande esa foto.
Entonces, en el botón tengo este código:
on (release) {
loadMovie("foto01.swf", 3);
}
Esto funciona, pero como quiero hacerlo dinámico, pues uso la información que le paso a la caja de texto que comenté anteriormente. Por lo que el método quedaría así:
on (release) {
archivo = caja_txt.text + ".swf";
loadMovie(archivo, 3);
}
Pues esto NO funciona!, y no entiendo por qué!. Hago trazas y la variable 'archivo' tiene la información correcta y el archivo existe, pero en el flash no hace nada.
¿Alguna idea?
Gracias por adelantado :)

3 Respuestas

Respuesta
1
Lo primero que veo es que utilizas la función loadMovie como si fuera la función loadMovieNum, es decir, ese 3 que pones seguido de la coma parece ser el nivel y no el nombre del clip a sustituir, que es como funciona loadMovie. Lo probé y efectivamente no funciona.
Sin embargo cuando utilizas la función loadMovie correctamente si funciona de maravilla.
Haz lo siguiente:
Crea un clip de película vacío en el lugar que te convenga y ponle como nombre de instancia "contenedor" y reescribe el código del botón de la siguiente manera:
on (release) {
dato = caja_txt.text + ".swf";
loadMovie(dato, contenedor);
}
Verás que bien te funciona. Pruébalo y luego me cuentas.
Muchas gracias! Como funcionaba ese ' loadMovie("fichero.swf", 3) ' creí que funcionaría así también con variable, y ni pensé en el loadMovieNum :)
Gracias, ha estado perfecto.
Respuesta
1
¿Qué error te tira el flash? ¿O simplemente no hace nada?
Hola!, ya lo resolví.
No, no tiraba ningún error, no hacía nada, ni se inmutaba, incluí trazas y veía que todo estaba bien.
Es curioso, resulta que el método ' loadMovie("fichero.swf", 3) ' funciona, pero como destino pongo un nivel de capa, y para ello está el método loadMovieNum.
Y curiosamente, si meto variables en el loadMovie no funciona, al menos en este caso, pero en el otro método loadMovieNum sí funciona :)
Gracias de todas maneras!, un saludo.
Respuesta
1
Vaya... no se que decirte, así de primeras necesitaría más datos.
Por tu código imagino que el error debe estar dentro de la TextImput (caja de texto). Asegurate que contiene el nombre del archivo sin la extensión ya que sino estarías intentando abrir el archivo "foto01.swf.swf" el cual no existe. Si no es ese el problema asegurate que la TextImput no devuelve el texto con código HTML, porque el archivo "<font color=#000000>foto01</font>.swf" tampoco existirá.
También asegurate que el nombre de instancia ("caja_txt") está exactamente igual en el panel de propiedades de la TextImput.
En ocasiones así, que por asignar variables deja de funcionar un programa lo mejor es colocar "traces" para ver en que momento pasa algo inesperado.
Un ejemplo sería cambiar el segundo código por:
---
on(release) {
trace("caja_txt.text = " + caja_txt.text);
archivo = caja_txt.text + ".swf";
trace("variable archivo: -->" + archivo + "<--");
loadMovie(archivo,3);
}
---
Como ves con solo dos lineas de texto más comprobamos las dos variables del evento. Además al mostrar la variable "archivo" le añadí "-->" y "<--" lo que nos permite comprobar exactamente donde empieza y donde termina la variable y comprobar que no hay espacios antes ni después.
En fin, estoy seguro que si mis consejos no fueron de utilidad los "traces" te permitirán encontrar el error. De no ser así no dudes volver a preguntar y copiarme los resultados de los "traces".
Suerte
---
Sel
Hola!, ya lo resolví. Es curioso, resulta que el método ' loadMovie("fichero.swf", 3) ' funciona, pero como destino pongo un nivel de capa, y para ello está el método loadMovieNum.
Y curiosamente, si meto variables en el loadMovie no funciona, al menos en este caso, pero en el otro método loadMovieNum sí funciona :)
Gracias por tu interés. También me ha servido de ayuda tus consejos.
Un saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas