Comunidad de diseño web y desarrollo en internet online

Problema con Instancias anidadas!!

Citar            
MensajeEscrito el 15 Feb 2012 06:41 am
Buenas noches gente ;) !! Bueno les paso a comentar mi problema :(

Resulta que estoy diseñando un Website en Flash cs4, y decidi hacerlo con AS3 (en el cual no soy tan bueno, pero lo voy entendiendo).




El tema es el siguiente: Tengo un MovieClip llamado "botonera" (nombre de instancia: botones), y adentro de esta estan los botones (cada uno con su nombre de instancia). Lo que tengo que hacer es el simple efecto de Roll_Over y Roll_Out (despues me enfoco en el estado de click).

El tema es que son instancias anidadas, entonces para crear las funciones, y para agregarle el Listener a la instancia del boton (inicio_mc por ej.), tendria que hacer esto: "botones.inicio_mc.addEventListener(y el resto...)"

Hasta ahi va bien, pero el MovieClip Botonera comienza en el frame 10 (en la escena principal), y los botones dentro del MovieClip Botonera comienzan unos fotogramas mas adelante PORQUE antes de que aparezcan tiene una animacion previa (para q aparezcan de a poco en la pagina)..

Conclusion, todo esto hace que me tire este 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/frame1()


Creo yo y por lo que pude averiguar, que no encuentra la instancia a la que hago referencia (tanto "botones" como "inicio_mc" ) en el fotograma 1 y tira error. Yo descubri una forma media crota de arreglarlo temporalmente, que esta en poner desde el fotograma 1 la instancia del boton a programar, en alpha 0 (para q sea invisible) y cuando llegaba el frame que tenia que aparecer, lo hacia visible. Pero esto me parece muy croto, porque tendria que estar poniendo el doble de simbolos en la linea de tiempo; tiene que haber una foma mas optima.


Les dejo el archivo .FLA (272kb) para que vean de que hablo. Esta echo a modo de ejemplo para no pasarles toooodo el website, tiene las cosas que son relevantes al problema

http://www.mediafire.com/?lz7zvxk9ncdr7bw


Les agradeceria mucho su ayuda, ya que estoy hace varios dias dando vueltas con esto :@

Por xpumax

40 de clabLevel



 

opera
Citar            
MensajeEscrito el 15 Feb 2012 01:00 pm
Si haces referencia a una instancia que aún no está en escena entonces tendrás siempre error. Intenta poner los handlers de los botones en la línea de tiempo donde están los botones en escena

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 15 Feb 2012 02:56 pm
Muchas gracias por responder Jorgue..

Osea que me decis que ponga el fotograma con las acciones ubicados en la linea donde estan las instancias?? O que solo ponga las funciones de estos en dicha ubicacion??

Por xpumax

40 de clabLevel



 

opera
Citar            
MensajeEscrito el 15 Feb 2012 03:18 pm
Acabo de hacerlo, las funciones las deje en el frame 1 de la Escena principal, y los listeners para añadirle el evento a los botones los puse en frame donde esta el MovieClip Botonera.

Eso se soluciono, pero el problema es con los botones dentro de Botonera. Se encuentran en el frame 33. Tendria que haber una forma de indicarle desde la escena principal donde se encuentran los botones dentro la linea de tiempo de Botonera.

Por xpumax

40 de clabLevel



 

opera
Citar            
MensajeEscrito el 15 Feb 2012 05:14 pm
Un frame que no ha sido ejecutado no existe, lo que tienes es un poblema de estructura, mueve todo a la línea de tiempo de la botonera, en general AS3 está mas orientado a clases y desparramar código por las líneas de tiempo siempre da problemas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 15 Feb 2012 06:11 pm
Ya movi a la linea de tiempo de la Botonera y funciono (aunque a los botones que estan en el frame 33 dentro de la Botonera los puse desde el frame 1 invisibles, y visibles en el 33)
Pero me quedo esa duda, porque no es muy raro lo que hago: Un clip que aparece en determinado momento, y que contiene 4 botones que tambien aparecen en determinado momento. Es algo normal, no siempre se va a dar el caso de que todo aparesca en el primer frame.
¿Que seria lo correcto en estos casos?

Por xpumax

40 de clabLevel



 

opera

 

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