Comunidad de diseño web y desarrollo en internet online

ayuda urgente!!!!!!!

Citar            
MensajeEscrito el 08 Mar 2010 11:31 pm
buenas........................
lo k pasa es que tengo dos clases creadas y me formula el siguiente error (TypeError: Error #1009:) y la verdad no se que hacer frente a este problema, si algun me pudiese colaborar en la solucion de este insistente error se lo agradeceria........
bueno otra cosas que me deja perplejo es que cuando uso la clase (cargarxml) como el main ( punto de entrada a la app.) mi (flA / swf) funciona perfecto.

que debo hacer?

Nota: agote todos mis recursos y la verdad estoy barado con este inconveniente.

TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.

1. clase => punto de entrada a la app.

Código ActionScript :

package {
   import flash.display.*;
   import flash.text.TextField;
   import cargarxml;
   public class Main extends Sprite{
      var cargar:cargarxml;
      public function Main():void {
         cargar = new cargarxml();
         addChild(cargar);
         trace("punto de entrada creado ");

      }
   }
}

2. clase => carga archivos de un xml

Código ActionScript :

package {
   import flash.display.*;
        import flash.text.TextField;
   import flash.net.URLLoader;
   import flash.net.URLRequest;
   import flash.events.*;

   public class cargarxml extends Sprite {
      var loader:URLLoader = new URLLoader();
      var XmlExterno:XML;
      var lista:XMLList;
      var total:Number;
      var fotos = new Loader();
      public function cargarxml():void {
         
                       //eventos
         Evento_Over();
         Evento_Click();

                       //cargador de imagenes xml
         fotos.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, precarga);
         loader.addEventListener(Event.COMPLETE,cargarXML);
         loader.load(new URLRequest("xml/galeria.xml"));

         //contenedor de imagenes xml
         addChild(fotos);
         fotos.x = 330;
         fotos.y=20;
         fotos.scaleX=1.1;
         fotos.scaleY=1.1;
      }
      // muestra el cargador de cada foto
      function precarga(e:ProgressEvent):void {
         var parciales:Number = e.target.bytesLoaded;
         var totales:Number = e.target.bytesTotal;
         var porciento = parciales/totales*100;
         porciento = Math.round(porciento);
         info_txt.text = String(porciento+ " %");
      }
      //carga el xml
      function cargarXML(event:Event) {
         var cargador:URLLoader = event.target as URLLoader;
         nueva instancia del xml
         XmlExterno = new XML(cargador.data);
         lista=XmlExterno.children();
         total=lista.length();
         var foto = new Loader();
         //otra instancia del contenedor de (imagenes del xml)
         addChild(foto);
         info_txt.visible = false;
         trace("carga realizada");

      }
      function Evento_Over():void {
         stage.addEventListener(Event.ENTER_FRAME,hitTest);
      }
      function hitTest(event:Event) {
            //bucle que referencia el evento con en nodo del xml y le da propiedades a las intancia de los mc
         for (var k:uint=0; k <= 28; k++) {
            if (this["boton" + k].hitTestPoint(mouseX,mouseY,true)) {
               this["boton" + k].gotoAndStop(2);
               this["boton" + k].buttonMode = true;
               this["boton" + k].stop();
               texto_in.text=lista[k].attribute("texto_in");
               descripcion.text=lista[k].attribute("descripcion");
               fotos.load(new URLRequest(lista[k].attribute("imagen")));
            } else {
               this["boton" + k].gotoAndStop(1);
            }
         }
      }
      function Evento_Click():void {
         for (var k:uint=0; k <= 28; k++) {
            this["boton" + k].addEventListener(MouseEvent.CLICK, on_click);
         }
      }
      function on_click(e:MouseEvent) {      
         for (var k:uint = 0; k<=28; k++) {
            trace("este es el evento click");
         }

      }
   }
}

otro error que me perturba es el siguiente y creo que no esta relacionado con el error anterior pero com lo dije antes si coloco esta clase (clase 2) com punto de entrada en mi app funciona perfecto

1120: Acceso a una propiedad info_txt no definida.1120
1120: Acceso a una propiedad texto_in no definida.
1120: Acceso a una propiedad descripcion no definida.

si alguien me puede decir como definir las propiedades anteriores ya que en mi codigo tengo la definicion :
import flash.text.TextField; o es que estoy equivocado ?

muchacos espero que no los fastidie ya que mi trabajo depende de este problema
de antemano gracias por la ayuda que me puedan brindar....

Por camiso2

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Mar 2010 11:34 pm
es mejor que utilizes el amfPHP para cargar tus valores mira en esta web te explican como ademas ya estan metiendo video Tutoriales..
http://detodoconroberts.blogspot.com/

Por Shadonwk

50 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Mar 2010 03:48 am
en cuestiones de OOP , esta muy poco funcional tus clases, aun puedes separar en mas clases , te recomiendo que hagas lo siguiente crea una clase solo se encargue de cargar el XML , una clase Boton , y ya en Main solo harias una que otra instacia de tus clases , y si funciona cuando usas cargaxml es por que extiende de sprite ademas de que accedes al Stage practicamente la clase cargaxml parece una clase Main :S.

Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

chrome
Citar            
MensajeEscrito el 09 Mar 2010 11:00 pm
que mas jn_flash........................

hombre ud me deja perplejo cuando me dice que la funcionalidad de esta clase es minima, la verdad soy novato en el cuento de p`rogramar y la verdad no pretendo molestarlo pero si me da una idea mejor para darle una mejor funcionalidad a esta clase se lo agradeceria.

espero respuesta

nota : tiene razon cuando me dice que debo generalizar mas y dividir en mejores clses pero esto es un ejemplo

Por camiso2

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Mar 2010 08:51 am
Perdón por responder tan tarde. Si el error es del tipo

TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.

Efectivamente es eso, que se está tratando de acceder a un objeto que es nulo. La apuesta suele ser tratar de acceder al "stage" antes de que se haya añadido el objeto al stage.
Resumo tu clase "cargarxml" -para que veas dónde está el error-, no porque merezca ser resumida)

Código ActionScript :

package { 
 
   public class cargarxml extends Sprite { 
      var loader:URLLoader = new URLLoader(); 
      ....
      public function cargarxml():void { 
         Evento_Over(); 
         Evento_Click(); 
         ....
      }
      ....
      function Evento_Over():void { 
         //AQUÍ ESTÁ EL ERROR al usar "stage"
         stage.addEventListener(Event.ENTER_FRAME,hitTest); 
      }
}

Vamos, el objeto se crea al escribir

Código ActionScript :

cargar = new cargarxml(); 

Y cuando se crea el objeto se llama a la función Evento_Over donde tratamos de añadir un listener al stage y NO está todavía en el stage.

La solución, usar el evento ADD_TO_STAGE y conformar tu clase de este modo

Código ActionScript :

public class cargarxml extends Sprite 
   {
      public function cargarxml ():void 
      {
         if (stage) init();
         else addEventListener(Event.ADDED_TO_STAGE, init);
      }
      
      private function init(e:Event = null):void 
      {
         removeEventListener(Event.ADDED_TO_STAGE, init);

                        //Aquí ponemos TODO lo que tuvieras en la función "constructora"
                        Evento_Over(); 
                        Evento_Click();
                        fotos.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, precarga); 
                        loader.addEventListener(Event.COMPLETE,cargarXML); 
                        ......
      }
   }
}

Bueno, realmente he dicho que pongas todo lo que tenías en la función "constructora" dentro de la función "init" que hemos creado, pero podrías, si quieres, solamente meter ahí las funciones que añaden al constructor.
Respecto a

1120: Acceso a una propiedad info_txt no definida.1120
1120: Acceso a una propiedad texto_in no definida.
1120: Acceso a una propiedad descripcion no definida.

Es, de nuevo, que efectivamente no tiene acceso a esas "propiedades" (realmente el error es porque NO EXISTEN ni "info_txt, ni "texto_in" ni "descripción". Supongo que es porque tienes dichas cajas de texto DENTRO de un MC. Si es así y tu mc se llama, p.e. "miloader" debería ser
miloader.texto_in, miloader.info_txt y miloader.descripcion

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Mar 2010 03:55 pm
heeeeeeee

esa era la repusta que esperaba y claro hummmmmmmmmmmmmm
ya reconoci mi error de inmediato

gracias hombre

Por camiso2

12 de clabLevel



 

firefox

 

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