Comunidad de diseño web y desarrollo en internet online

TypeError: Error #1006 bastante raro.

Citar            
MensajeEscrito el 03 Mar 2010 09:43 pm
Hola foro
Escribo por que me esta sucediendo algo un poco inusual, les explico....
tengo varias peliculas ( .swf ), las cuales su documentRoot es una clase llamada TMovie, la cual hereda de MovieClip y tiene un par de metodos que le inserte. El problema me surge cuando yo cargo esos swf, y trato de invocar cualquier funcion de TMovie... que es la clase padre de ese swf... Aqui fragmentos del codigo

Código :

public class TMovie extends MovieClip 
{
    import flash.display.MovieClip;
    import flash.text.TextField;

    public function TMovie():void 
    {
    }

    public function ponNombre( s:String ):void
    {
          _texto.text = s;
    }  
}


la clase del documentRoot de la pelicula que carga los demas .swf

Código :

class TMain extends MovieClip
    // .......  ( los imports y demas )
    private var _loader:Loader = new Loader();
    public function TMain():void {
   _loader.contentLoaderInfo.addEventListener( Event.COMPLETE, __onC );
       this.addChild( _loader );
        _loader.load( new URLRequest("fichero.swf") );
    }  
  
    public function __onC(e:Event):void
    {
        var _temp:TMovie = _loader.content as TMovie;
        _temp.ponNombre("ZANDY");   // AQUI ES EL ERROR...!! :-S
    }
}

pd : todas las movies tienen una animacion que dura unos 15 frames aproximadamente al inicio... en el mismo timeline principal, pero el textInput donde quiero que se visualice el texto esta en una capa aparte...

s@lu2

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 04 Mar 2010 01:49 am
intenta haciendo cast pero de la clase MovieClip al content

Código ActionScript :

public function __onC(e:Event):void
{
        var _temp:MovieClip = _loader.content as MovieClip;
        _temp.ponNombre("ZANDY");   // AQUI ES EL ERROR...!! :-S ..espero que ya noo..
}


Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

firefox
Citar            
MensajeEscrito el 04 Mar 2010 01:56 pm
si, asi si funciona pero;..... no ve el metodo ponNombre, igual si casteo posteriormente a TMovie después de haber casteado a MovieClip me da null.... !!

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 05 Mar 2010 02:42 pm
que raro , no te vale si creas en tiempo de ejecucion el TextField , lo he probado y funciona :

Main

Código ActionScript :

package
{
   import flash.display.MovieClip;
   import flash.display.Loader;
   import flash.events.Event;
   import flash.net.URLRequest;
   
   public class Main extends MovieClip
   {
      private var _loader:Loader;
      
      public function Main()
      {
         _loader = new Loader();
         _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
         _loader.load(new URLRequest("assets/swfA.swf"));
      }
      
      private function completeHandler(e:Event):void
      {
         var tmp:MainChildren = (e.target.content) as MainChildren;
         addChild(tmp);
         tmp.customMethod("hello swf children");
      }
   }
}


MainChildren

Código ActionScript :

package
{
   import flash.display.MovieClip;
   import flash.events.Event;
   import flash.text.*;
   
   public class MainChildren extends MovieClip
   {
      private var tLabel:TextField;
      
      public function MainChildren()
      {
         addEventListener(Event.ADDED_TO_STAGE, addedHandler);
         addEventListener(Event.REMOVED_FROM_STAGE, removedHandler);
      }
      
      private function addedHandler(e:Event):void
      {
         removeEventListener(Event.ADDED_TO_STAGE, addedHandler);
         tLabel = new TextField();
         addChild(tLabel);
      }
      
      private function removedHandler(e:Event):void
      {
         //destroy();
      }
      
      public function customMethod(str:String):void
      {
         tLabel.text = str;
      }
   }
}


te puede servir como una referencia , saludos.

Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

chrome

 

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