Foros del Web » Creando para Internet » Flash y Actionscript »

Problema con Instancias anidadas

Estas en el tema de Problema con Instancias anidadas en el foro de Flash y Actionscript en Foros del Web. Buenas noches gente ;) !! Bueno les paso a comentar mi problema :( Resulta que estoy diseñando un Website en Flash cs4, y decidi hacerlo ...
  #1 (permalink)  
Antiguo 15/02/2012, 00:53
 
Fecha de Ingreso: enero-2012
Mensajes: 17
Antigüedad: 12 años, 3 meses
Puntos: 1
Problema con Instancias anidadas

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

[url]http://www.mediafire.com/?lz7zvxk9ncdr7bw[/url]


Les agradeceria mucho su ayuda, ya que estoy hace varios dias dando vueltas con esto :@
  #2 (permalink)  
Antiguo 16/02/2012, 10:47
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Respuesta: Problema con Instancias anidadas

Hola waguen:
Para empezar en la Línea de tiempo principal no es necesario que haya 10 frames ocupados, basta que el MC botones lo pongas en el primer frame.
El código de la capa 2 frame 1 no debe de estar allí, elimina esa Capa y el código escríbelo en el frame 13 del MC botones y lo escribes así:
Código actionscript:
Ver original
  1. stop();
  2. import flash.events.MouseEvent;
  3. inicio_mc.buttonMode=true;
  4. //BOTON INICIO
  5. inicio_mc.addEventListener(MouseEvent.ROLL_OVER, sobre1);
  6. inicio_mc.addEventListener(MouseEvent.ROLL_OUT, fuera1);
  7.  
  8. function sobre1(event:MouseEvent):void {
  9.      inicio_mc.gotoAndPlay("Sobre");
  10. }
  11. function fuera1(event:MouseEvent):void {
  12.      inicio_mc.gotoAndPlay("Fuera");
  13. }
  14. //BOTON NOSOTROS
  15. nosotros_mc.addEventListener(MouseEvent.ROLL_OVER, sobre2);
  16. nosotros_mc.addEventListener(MouseEvent.ROLL_OUT, fuera2);
  17.  
  18. function sobre2(event:MouseEvent):void {
  19.      nosotros_mc.gotoAndPlay("Sobre");
  20. }
  21. function fuera2(event:MouseEvent):void {
  22.      nosotros_mc.gotoAndPlay("Fuera");
  23. }
  24. nosotros_mc.buttonMode=true;
Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/

Etiquetas: 3.0, anidadas, instancias, scrip, acciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:04.