Comunidad de diseño web y desarrollo en internet online

[AS3] gotoAndStop(2) y acceder a campo en el fotograma.

Citar            
MensajeEscrito el 15 Oct 2007 04:45 pm
Tengo un MovieClip con dos fotogramas
en el primer fotograma tengo un texto estático
en el segundo fotograma tengo un texto dinámico que se llama "texto".

En mi pelicula principal pongo el movieclip en el primer fotograma con el nombre "Hola" y coloco el siguiente código:


Código :

Hola.gotoAndStop(2);
Hola.texto.text = "Cambio de variable";

y me manda 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 Prueba_fla::MainTimeline/Prueba_fla::frame1()

¿Alguien sabe porque sucede esto?

Esto me sucede cada vez que cambio de fotograma por código y quiero acceder a un campo que se encuentra en ese fotograma.

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 17 Oct 2007 01:00 pm
El problema creo que es, que el codigo que colocas en tu primer fotograma solo aplica a lo que hay en el, y no a los otros fotogramas. Prueba colocando en el primer fotograma trace(texto) si te sale nulo es por lo que te digo.

Por AXM

Claber

705 de clabLevel

8 tutoriales

Genero:Masculino  

Bogotá

firefox
Citar            
MensajeEscrito el 17 Oct 2007 06:24 pm
Crea una variable que se mueva en toda la linea del tiempo y solo la mandas llavar en el fotograma que nesecites:

Código :

//fotograma 1 - capa 1
var variable:String = "Cambio de variable";
//fotograma 1 - capa 2
Hola.gotoAndStop(2);


Código :

//fotograma 2 capa2
Hola.texto.text = variable;

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

firefox
Citar            
MensajeEscrito el 18 Oct 2007 12:33 pm
El problema esta en el campo de texto "Hola.texto", que no lo carga aún cuando llega hasta esta línea.

Teoricamente no deberia mandar este error, porque al cambiar de fotograma, ahí se encuentra el campo, pero en tiempo de ejecución todavía no esta cargado en memoria, y cuando llego a la segunda línea el error se refiere como objeto nulo al campo de texto que se encuentra dentro del clip Hola.

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 18 Oct 2007 04:14 pm

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

firefox
Citar            
MensajeEscrito el 20 Oct 2007 04:20 am

gabynufe escribió:

Teoricamente no deberia mandar este error, porque al cambiar de fotograma, ahí se encuentra el campo, pero en tiempo de ejecución todavía no esta cargado en memoria, y cuando llego a la segunda línea el error se refiere como objeto nulo al campo de texto que se encuentra dentro del clip Hola.
Te acercás mucho al origen del problema, en realidad, se debe a que Flash hace los goto en el siguiente fotograma. Si esperaras un fotograma para buscar el campo de texto funcionaría. Lo que podés hacer es que tu código se ejecute si el currentframe es igual a 2.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 22 Oct 2007 03:18 pm

HernanRivas escribió:

Flash hace los goto en el siguiente fotograma. .

No entendi...
me lo puedes explicar

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 23 Oct 2007 02:14 pm
Básicamente hay un sandbox (creo que ese es el término correcto) donde van a parar todas las acciones que se van llamando y se ejecutan después.

Supongamos que en AS2 vos hacías un goto al fotograma 5 y después otro más al 12. AS2 ejecutaba ambos gotos en cuanto eran llamados. AS3 no, los guarda en el sandbox y ejecuta sólo el último cuando se terminaron de almacenar todas las acciones. Es difícil de explicar, pero básicamente cuando Flash trata de meter tu corroboración de campo de texto en el sandbox salta que no existe el objeto ya que en ese momento todavía no cambió de fotograma.

Supongo que ese sistema debe tener varias ventajas (a nivel performance, inclusive) pero puede ser muy molesto. En uno de los código que estuve haciendo, eso saltaba cuando eliminaba un MC y como se elimina al final del fotograma seguía ahí para otras corroboraciones ocasionando que otras acciones lo quisieran eliminar; dando como resultado un error de objeto nulo.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 24 Oct 2007 01:21 pm
Muchas gracias a todos.

Voy a tener que cambiar mi perspectiva de programación desde ahora.

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 24 Oct 2007 01:41 pm
Creo que eso de los fotogramas no te va a dar demasiados problemas. En mi experiencia es peor no poder eliminar un DisplayObject en el instante deseado.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox

 

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