Comunidad de diseño web y desarrollo en internet online

Al cambiar un mc de frame, flash me lo deja de reconocer

Citar            
MensajeEscrito el 06 Nov 2008 02:57 pm
Wenas,

Tengo un juego de tablero que funcionaba perfectamente, Todos los botones, tablero, etc... estaban en el 1er movieclip.
Despues de terminar el juego y de comprobar que funcionaba perfectamente, desplazo todos los fotogramas del juego al fotograma 5, y creo unos menús.
Despues de recorrer los menús perfectamente (traceando todo y viendo que lo hace perfecto), le doy a nuevo juego, entonces me situo en el fotograma 5, y donde antes tenia:
Tablero.addChild(algo);
Ahora me dice que Tablero es null, pero Tablero es un mc situado en el fotograma 5 (a mano).

¿Alguien le ha pasado algo parecido o sabe porqué puede ser?

Un saludo

Por X-TUS

94 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Nov 2008 06:59 pm
Tenes que tener en cuenta que si queres hacer referencia a un clip de pelicula el código debe ubicarse en el mismo frame que se encuentra el clip. El clip se carga en la memoria cuando la cabeza lectora pasa por ese frame.
O haces que el codigo este disponible unicamente a partir del frame donde esta el clip o moves el clip al frame donde esta el codigo y lo pones invisible. Espero que te sirva.

Saludos,

Topicus

Por topicus

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Nov 2008 08:43 pm
El código está en un procedimiento de la clase del documento.
La cosa es que los menús y submenús me funcionan perfectamente y recorren los 4 primeros frames sin problemas.

Haciendo pruebas para encontrar el fallo me da la impresion de que es como si cargara el código más rápido que el frame, y no le da tiempo a reconocer el movieclip.

Por X-TUS

94 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Nov 2008 09:06 pm
He estado mirando la ayuda del gotoAndStop y del nextFrame, y las dos ponen que cambian de frame, cuando terminan todo lo que tienen pendiente de ejecucion.

La cosa es que cuando hace clic en "nuevo juego", el codigo es el siguiente:

Código :

nextFrame();
CrearTablero();//Dentro de este procedimiento tengo Tablero.addChild(algo); y es donde falla


Me da la impresion de que lo que hace es poner a la cola nextFrame (para pasar del frame 4, donde haces clic a nuevo juego, al frame 5) hasta que no termine la funcion CrearTablero (porque ha sido creada en el frame 4), pero dentro de CrearTablero tengo que acceder a un movieclip del frame 5, con lo cual como aun no se ha cambiado al frame 5 pues me aparece que es null.

He mirado pero ni gotoAndStop, ni nextFrame devuelven ningún evento ni nada, así que no se que hacer...

Por X-TUS

94 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Nov 2008 09:27 pm
Tambien he buscado un evento que se ejecute al cambiar de frame (para después hacer el procedimiento CrearTablero), pero parece ser que no existe ese evento...

He resuelto el problema, pero de una manera un tanto ruin:
he creado un evento ENTER_FRAME, que evalua el frame en el que estoy, y si es el frame correcto (el frame 5) se ejecuta el codigo que necesito y se elimina el onenterframe.

Se os ocurre alguna solución mas elegante?

Por X-TUS

94 de clabLevel



 

chrome
Citar            
MensajeEscrito el 07 Nov 2008 07:31 am

X-TUS escribió:


La cosa es que cuando hace clic en "nuevo juego", el codigo es el siguiente:

Código :

nextFrame();
CrearTablero();//Dentro de este procedimiento tengo Tablero.addChild(algo); y es donde falla


Es exactamente eso, si tuvieras en tu frame -al que va el nextFrame-

Código :

CrearTablero();

(lógicamente el nuevo juego sólo haría el nextFrame) Ya SÍ que funcionaría. Si no puedes hacer eso, porque todo el código lo quieras en un único flash o uses un document class algo sencillo puede ser que sí exista el MC "Tablero" en el primer frame, aunque esté invisible al principio.

Por Eliseo2

710 de clabLevel



 

firefox

 

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