Cambiar textos en instancia

Buenas!
Espero que puedan ayudarme, seguro que si pues la pregunta es bastante
simplona. Advierto! Soy muy muy novato en flash, tan solo se hacer
los típicos gotoandplay() XDD
Bueno el caso es que tengo un clip llamado "Bienvenida" con una
instancia a la cual he llamado "rotulo". Dentro de esta instancia
tengo dos textos "titulotexto" y "texto" (ambos dinámicos). Pues
bien... Siendo esta la estructura... ¿Cómo puedo cambiar el contenido
de dichos textos a través de un botón situado en la escena principal?
se que se cambiaría por titulotexto.text = "hola"; (por ejemplo).
Peeeero desconozco la forma de hacerlo desde fuera indicando el "path"
De la instancia.
Bueno os dejo este croquis por si os he liado con tanta palabrería...
Escena1 -> Bienvenida (en biblioteca)-> rotulo (instancia de
bienvenida en la escena) -> titulotexto y titulo (en rótulo)
He probado a utilizar:
on (release) {
_root.Bienvenida.titulotexto.text = "Texto cambiado"
}
y
on (release) {
_root.rotulo.titulotexto.text = "Texto cambiado"
}
Pero ninguno de los dos parece funcionar :((((
Bueno espero que me podáis ayudar, pues me compre un libro para
iniciarme en flash, pero no me explica este caso :-(
Muchas gracias por anticipado ^^"
Respuesta
1
Bueno mira. Entiendo que tienes dos textos dinámicos dentro de un clip de película y un botón en escena. Al hacer click en el botón quieres que cambie los textos de la instancia. El código para el botón seria el siguiente.
on (release) {
rotulo.titulotexto = "Cambiado"
rotulo.titulotexto = "Cambiado"
}
Te aclaro dos cosas:
Cuando usas un botón, no hace falta poner _root si quieres acceder a algún clip que esta al mismo nivel(en este caso el rotulo y el botón están en el mismo nivel) pero igual con o sin el _root. En este caso va a funcionar.
Segundo: ojo! Fíjate bien en las Propiedades de los textos y date cuenta que el texto tiene un nombre de texto y un nombre de variable(a la derecha abajo del panel propiedades). Vos en este caso quieres cambiar el valor que tienen los textos. O sea teens que poner en las propiedades/variable pones esto "titulotexto". Así cuando vos haces la ruta rotulo. Titulotexto te referís al valor titulotexto, y no hace falta poner nombre al texto, solo pones el nombre de la variable. Hable mucho espero que hayas entendido cualquier cosa pregunta.

2 respuestas más de otros expertos

Respuesta
1
Para empezar, yo personalmente no consideraría novato a alguien que conoce como hacer instancias y programar un botón. ;)
Y segundo... Según me lo describes no debería dar fallar.
Hice unas pruebas y Flash no te da error si la ruta de destino (o path xD) del objeto es inexistente o incorrecta.
Así que te listo unas posibles causas del problema. Asegurate que todas están bien.
1. Asegúrate que todos los nombres de instancia ("rotulo", "titulotexto" y "texto") están en minúsculas y sin acento.
2. Si "titulotexto" y "texto" son casillas de texto asegurate que has puesto el nombre de instancia en el sitio correcto y no en la casilla de variables ("Var:") ni en la más grande de abajo, de vínculos.
3. Asegurate de que el color del texto no es el mismo que el color de fondo.
4. Para escribir la ruta de destino puedes usar un complemento de Flash que viene incorporado en el panel de acciones.
Es un círculo parecido a los punto de mira de las armas.
Si nada de esto funciona y necesitas el archivo urgentemente, puedes hacer lo siguiente:
1. En lugar de ponerles nombre de instancia a las casillas de texto, ponles variables (en la casilla "Var:").
2. Mete el botón dentro del clip de película, así no será necesario escribir ruta a la variable.
3. Por último pon en las acciones del botón:
---
on (release) {
[nombre_de_la_variable] = [texto]
}
---
No olvides reemplazar el contenido de los corchetes, por ejemplo:
---
on (release) {
titulotexto = "Hola"
}
---
Si aún no has conseguido que funcione (o lo has conseguido usando variables, pero no corrigiendo el problema) te agradecería que me enviaras el .fla a [email protected] para poder analizarlo. Que la experiencia siempre agradece los problemas :P
Que tengas suerte, y no dudes volver a preguntar
---
Sel
Muchísimas gracias por tu respuesta! He conseguido que funcionase. Pero era más bien porque el nombre de la instancia no se lo ponía justo cuando esta entraba en escena...
Que delicaito es el flash...
Si no te importa me gustaría hacerte otra pregunta. Lo haré en otro post para que sea más justo (2 preguntas, 2 votaciones)
Espero no molestarte mucho ;)
Respuesta
1
On (release)
{
_root.rotulo.titulotexto.text = "Texto cambiado";
}
Esa es la estructura que debe funcionar, prueba bien,
¿Por cierto los dinamic text están instanciados no?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas