Comunidad de diseño web y desarrollo en internet online

Acceder a una variable en una línea de tiempo diferente

Citar            
MensajeEscrito el 21 Jul 2011 02:26 pm
Soy nuevo en el foro, pero esta duda me correo desde hace varios días, y no soy capaz de solucionarla. Agradecería me echáseis una mano con ésto.

Tengo un problema recurrente con Actionscript 3.0. Utilizo Flash CS5 y tengo una línea de tiempo principal en la que existen dos símbolos: Circle (instancia de Circulo) y Square (instancia de Cuadrado).
En la primera de ellas, tengo definida la variable Prueba1, con un valor de 3.

En la línea de tiempo principal, trato de acceder a dicha variable con el siguiente comando:

trace(this.Circle.Prueba1);

Sin embargo, el valor que me devuelve es "Undefined". Es como si supiese que la variable está declarada, pero no considera el valor que tiene.

¿Cómo puedo acceder a la variable y mostrar el valor que tiene?

Por Nedlam

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Jul 2011 05:50 pm
Dado que el código en la línea de tiempo principal se ejcuta antes de las líneas de tiempo hijas, asegúrate que todo se ha ejecutado antes de accederlo. Por ejemplo haz la línea de tiempo principal de dos fotogramas, en el primero instancias los dos MC, en el segundo accedes a sus variables

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Jul 2011 06:42 pm
Muchas gracias por responder, pues estoy bastante perdido.

¿Quieres decir que se ejecuta el fotograma 1 de la línea principal de tiempo y después los fotogramas 1 de cada una de las instancias hijas. Posteriormente el fotograma 2 de la línea de tiempo principal y, después, los fotogramas 2 de las hijas... y así consecutivamente?

Por otro lado, ¿qué es exactamente MC? Aquí en mi caso coincide con que son los símbolos, pero, ¿de qué es acrónimo?

Por Nedlam

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Jul 2011 07:14 pm
MC = MovieClip

Exactamente, Flash reproduce el código fotograma a fotograma desde el padre hasta el último hijo, en ese orden
El típico error es llamar a una función declarada en el fotograma 1 del hijo desde el padre ni bien este se instancia ... como no ha sido ejecutada aún, no existe

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Jul 2011 07:53 pm
Pero... si coloco el trace en el fotograma 2, tendría que insertarlo como "fotograma clave en blanco" y escribirle el código Actionscript (el trace... etc).

El problema es que al insertar un fotograma clave en blanco, elimino automáticamente los símbolos Cirlce y Square, desde los cuales quiero traerme el valor de la variable. De hecho, cuando lo intento tal y como me dices (insertando el fotograma clave en blanco) me da el siguiente error:

TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
at CursoAS_fla::MainTimeline/frame2()

¿Puedes ayudarme?

Gracias de antemano.

Por Nedlam

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Jul 2011 08:50 pm
Ufff ... falta mucha base allí.
Describo el escenario del ejercicio>

1. Línea de tiempo principal de dos fotogramas, en el primer fotograma está el Circle y el Square, que en el primer frame de su propia línea de tiempo inicializan cuanta variable se le ocurra. Ambos por supuesto tienen nombre de instancia, supongamos que Circle tiene nombre de instancia "circulo"
2. Fotograma dos de la linea de tiempo principal. Tiene este código

stop()
trace(circulo.algunavariable)

Donde algunavariable es el nombre de la variable que declaraste en el fotograma 1 de Circle (si es una clase, la variable debe ser pública)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Jul 2011 05:41 am
El problema es que al escribir en el fotograma 2 de la línea de tiempo principal, me lo pone como si fuese el fotograma 1, puesto que no hay fotograma clave en blanco de por medio.

Por Nedlam

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Jul 2011 10:58 am
Ok, no entiendo mucho eso, pero intuyo que lo de poner fotogramas clave (F6), alargar líneas de tiempo (F5), insertar, borrar, etc no lo tienes muy claro. Y eso está unos cuantos pasos antes de lo que estamos discutiendo, así que intentalo con paciencia y si no puedes abre un nuevo post preguntando como se inserta fotogramas clave, etc

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Jul 2011 12:04 pm
Ok, muchas gracias por tu ayuda y tu tiempo.

Por Nedlam

13 de clabLevel



 

firefox

 

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