Comunidad de diseño web y desarrollo en internet online

Error 1009 en aplicación muy sencilla de ActionScript 3.0

Citar            
MensajeEscrito el 26 Ene 2010 10:14 am
Hola a todos,

Soy muy novato en esto de Flash y ActionScript. Parece que me he encontrado con un error muy conocido (mucha gente habla de él :P ) pero no soy capaz de solucionarlo. Mi aplicación pretende ser muy sencilla. Son varias pantallas puestas una detrás de otra en sucesivos KeyFrames todos en una Layer. Querría pasar de una pantalla a otra cuando suceda algo (ya sea pulsar un botón o autentificarme "user y pass").
El caso es que aparece el dichoso error:

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

Y por más que he probado cosas que he encontrado no lo puedo quitar.
Yo sé que estoy planteando mal este problema asíque agradecería todo consejo de cómo hacer esta aplicación mejor y solucionar así ese error.

Os pongo el código por si queréis echarle un vistazo aunque más que código es una chapuza, pero de momento es lo que tengo :oops:

Código ActionScript :

import fl.controls.Label;
import fl.controls.TextInput;
import flash.events.*;
      
   btnWellcome.addEventListener(MouseEvent.CLICK, wellcomeFunction);
   btnHome.addEventListener(MouseEvent.CLICK, homeFunction);
   btnAccept.addEventListener(MouseEvent.CLICK, acceptFunction);
   btnCancel.addEventListener(MouseEvent.CLICK, cancelFunction);
   btnAppliances.addEventListener(MouseEvent.CLICK, appliancesFunction);
   btnBackFromAppliances.addEventListener(MouseEvent.CLICK, backFromAppliancesFunction);
   
   function wellcomeFunction(event:MouseEvent):void
   {
      
         gotoAndStop("appliances");
         
   }

   
   function homeFunction(event:MouseEvent):void
   {

         gotoAndStop("access");
         
   }   
   
   function acceptFunction(event:MouseEvent):void
   {

         gotoAndStop("summary");
      
   }
   
   function cancelFunction(event:MouseEvent):void
   {
      tiUser.text="";
      tiPassword.text="";
   }
   
      function appliancesFunction(event:MouseEvent):void
   {

         gotoAndStop("appliances");
      
   }
   
   function backFromAppliancesFunction(event:MouseEvent):void
   {
      
         gotoAndStop("summary");
         
   }


Muchas gracias a tod@s. A ver si podéis aconsejarme algo, porfavor.

Por javiruiz18

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Ene 2010 10:39 am
El error se refiere a que NO existe un MC (botón ó lo que sea) que hayas indicado.
Así que lo que ocurre es que en el frame donde has puesto el código NO existe "btnWellcome", ó no existe "btnHome", o no existe....
Para que exista, se suele tener "checkeada" la casilla "Declarar instancias automáticamente" en las opciones de compilar -es lo que viene por defecto-
Vigila:
1.-Que los nombres correspondan a los "nombres de instancia" (que no hay una mayúscula que "baile" o algo así)
2.-Que en el frame donde escribes el addListener exista efectivamente dicho "botón" (puedes escribir código en varios frames -no se suele hacer así, pero es otro asunto-)
3.-Si un botón está DENTRO de un MC debe ser

Código ActionScript :

//si el MC que contiene el botón tiene como nombre de instancia "contenedor" y el 
//botón tiene como nombre de instancia "boton"
contenedor.boton.addEventListener(...)

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Ene 2010 02:06 pm
Muchas gracias Eliseo2 !!!!!
Parece que ya está solucionado. Ahora que me lo has dicho lo veo claro pero te juro que llevaba mas de 3 días atascado.
De verdad, muchas gracias.

Por javiruiz18

2 de clabLevel



 

firefox

 

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