Comunidad de diseño web y desarrollo en internet online

Problema con listener y clases

Citar            
MensajeEscrito el 27 Ene 2009 04:58 pm
Tengo dos clases
MenuElementos.as
define los botones del menuPrincipal
Al cliquear uno se los botones se crea un proyector de la imagenGrande (Proyector.as)
Proyector.as es importado en MenuElementos.as
proyector_data = new Proyector(param1, param2);
proyector_data.setSubmenu(ArraySubmenu)

Proyector.as
despliega el detalle de la opcion de menu cliqueada en MenuElementos.
El detalle incluye varias cosas pero lo que me ocupa ahora es el submenu.

Código :

public function setSubmenu(ArraySubmenu:Array)
   {
        //borra lo atachado anteriormente
        for(var i=0;i<_ArraySubmenu.length;i++)
        {
            _ArraySubmenu[i].BTN.removeMovieClip();
        }
        //asigna el nuevo submenu
        _ArraySubmenu = ArraySubmenu;
        _iSubmenuActivo=0;

        //y esto lo puse a ver si se corregia el error.
        loader2.removeListener(listener);
        DefLoader();//define el listener


        desplegarSubmenu();//Recorre el _ArraySubmenu y atachar mc de la biblioteca

    }


EL PROBLEMA ES:
Una vez atachados tods se carga imagenes en cada attach.
La primera vez que carga las imagenes del submenu lo hace bien.
Pero la segunda vez, si bien se atachan correctamente, cuando se va a cargar usando loader, ni siquiera llama al loader.
Se corta en seguida de hacer el primer loader.loadClip Ni siquiera lo llama.
loader2.loadClip(imagenSrc,clase.clipCarga);

A ver si estan los magos de siemrpe! y me salvan.

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 27 Ene 2009 07:42 pm
No entiendo mucho cuando dices, "nisiquiera llama al loader", :S pero si puedes publica el codigo de "DefLoader()" y tus eventos del listener onLoadInit onLoadComplete. Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 27 Ene 2009 08:16 pm
Pues lo que quiero decir es que no se ejecuta el loader cuando haglo loadClip


Código :

   public function DefLoader()
   {   //definicion del cargador llamado cada vea que se use loadClip
               var clase=this;
   loader=new MovieClipLoader();   listener=new Object();
   listener.onLoadProgress = function(target, loadedBytes, totalBytes)
               };
      
               listener.onLoadError = function(target:MovieClip, errorCode:String, httpStatus:Number) { trace("Error al cargar: "+target._name); };
             listener.onLoadComplete = function(target:MovieClip, httpStatus:Number):Void    { /*trace(">> onLoadComplete() httpStatus: " + httpStatus);*/      };
           listener.onLoadInit = function(target:MovieClip) //Acaba de cargar la imagen
            {
            trace("acabada de cargar"+target._name);
            clase.ControlaLoader(target)
           }
          loader.addListener(listener);
    }


Gracias por intentar ayudarme!

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 27 Ene 2009 08:56 pm
:S que codigo.

Bueno primero vamos a cambiar las funcion por estas:

Código ActionScript :

public function setSubmenu( submenu_arr:Array ):Void
{
        //borra lo atachado anteriormente
   var l:Number = _ArraySubmenu.length;
        for(var i:Number = 0; i < l; i++)
        {
            this._ArraySubmenu[i].BTN.removeMovieClip();
        }
        //asigna el nuevo submenu
        this._ArraySubmenu = submenu_arr;
        this._iSubmenuActivo = 0;

        //Aqui no se que sea loader2
        loader2.removeListener( this );
        this.DefLoader();//define el listener
        this.desplegarSubmenu();//Recorre el _ArraySubmenu y atachar mc de la biblioteca
}

public function DefLoader( Void ):Void
{   
   var loader:MovieClipLoader = new MovieClipLoader();
   loader.addListener(this);
}

public function onLoadInit( target_mc:MovieClip ):Void
{
   this.ControlaLoader( target_mc );
}

public function onLoadError( target_mc:MovieClip, errorCode:String, httpStatus:Number):Void
{
   trace("Error al cargar: " + target_mc._name);
}

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 27 Ene 2009 10:15 pm
Hola LongVie.
Este loader lo vengo usando desde siempre y funciona perfecto.
No me entiendas mal, no es que no quiera cambiarlo, pero yo se que funciona.

Lo que hago distinto en este codigo es llamar a la rutina que despliega el submenu desde otra clase.
El array llega bien.
Lo recorro y los attach funcionan
La url a las imagenes tambien es correcta.

Pero al hacerlo la primera vez funciona, pero luego parece que al hacerlo el loader se muere.
Sera que tengo que instanciar toda la clase Proyector de nuevo?

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 27 Ene 2009 10:22 pm
mmm ya lo entendi mejor, loader es una variable de la clase, no de la funcion :P

mira en el constructor de la clase agrega el listener al loader, no en una funcion cada vez que lo usas.

o puedes postear toda la clase y la cheko completa.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 27 Ene 2009 11:11 pm
Cuanto trabajo te tomas! :oops: Gracias de corazon.
Intenté borrar mucha cosa que no precisas.

Código :

import gs.TweenFilterLite;//ver documentacion
import mx.transitions.easing.*;

class Proyector extends MovieClip
{
    //*******variables de CONSTRUCTOR y externas
    private var _destino : MovieClip;
    private var _ArrayElementos : Array;
    private var _ArraySubmenu : Array;
    private var _iElementoActivo : Number;
    private var _iSubmenuActivo : Number;
    //***
    private var loader:MovieClipLoader,listener:Object;
    private var PRECARGA:MovieClip;
    private var mask:MovieClip,Img1:MovieClip,Img2:MovieClip;

    private var iCarga:Number;
    private var ImagenVisibleAhora:Number=undefined;
    private var clipCarga:MovieClip;
    private var clipAnterior:MovieClip;
    private var anchoImagenMax = 424;
    private var altoImagenMax = 302;
    private var primeraVez:Boolean;
    private var mouseListener:Object;



    public function Proyector(destino:MovieClip, ArrayElementos:Array)
    {
 super();
       _destino=(destino=="" || destino==undefined) ? _root:destino;
       _ArrayElementos=(ArrayElementos=="" || ArrayElementos==undefined) ? []:ArrayElementos;

      DefLoader();
        inicio();
    }



   public function DefLoader()
   {   //definicion del cargador llamado cada vea que se use loadClip
        var clase=this;
      loader=new MovieClipLoader();   listener=new Object();
      listener.onLoadProgress = function(target, loadedBytes, totalBytes)
      {
            if(loadedBytes <= totalBytes)
            {
                clase.PRECARGA._visible = true;
                var w = Math.floor(loadedBytes / totalBytes * 100) ;
                //clase.PRECARGA.gotoAndStop(w);
                 //clase._parent.porcentaje_txt.text = w+"%";
            }


      };
      listener.onLoadError = function(target:MovieClip, errorCode:String, httpStatus:Number) { trace("Error al cargar: "+target._name); };
      listener.onLoadComplete = function(target:MovieClip, httpStatus:Number):Void    { /*trace(">> onLoadComplete() httpStatus: " + httpStatus);*/      };
      listener.onLoadInit = function(target:MovieClip) //Acaba de cargar la imagen
      {
            //trace("acabada de cargar"+target._name);
            clase.PRECARGA._visible = false;
            clase.ControlaLoader(target)
      }
      loader.addListener(listener);
    }

    private function inicio()
    {   //llamada al ejecutarse el Constructor
        primeraVez=true;
        iCarga=0;
        //_iSubmenuActivo=0;
        //una vez ejecutado el constructor se crean mc auxiliares.
        Img1 = _destino.holder_mc.createEmptyMovieClip("Img1",_destino.holder_mc.getNextHighestDepth());
        Img2 = _destino.holder_mc.createEmptyMovieClip("Img2",_destino.holder_mc.getNextHighestDepth());
        mask = _destino.attachMovie("maskElementoGrande","mask_mc",_destino.getNextHighestDepth());
        crearPrecarga();
    }

    //*************MANEJO DE SUBMENU DE IMAGENES****************
     public function setSubmenu(ArraySubmenu:Array)
   {
        //llamado cada vez que cambia la opcion del menu principal (MenuElementos>>onPressOpcion)
        for(var i=0;i<_ArraySubmenu.length;i++)
        {
            _ArraySubmenu[i].BTN.removeMovieClip();
        }
        loader.removeListener(listener);
        DefLoader();
        _ArraySubmenu = ArraySubmenu;
        _iSubmenuActivo=0;
        desplegarSubmenu();

    }

    private function desplegarSubmenu()
    {    //llamado al cambiar de submenu (setSubmenu)
        var posX:Number=0;
        var posY:Number=0;
        var distanciaV = 5;

        for(var i=0;i<_ArraySubmenu.length;i++)
        {
            var BTN : MovieClip = _destino.submenuElementos_mc.createEmptyMovieClip("item"+i,_destino.submenuElementos_mc.getNextHighestDepth());
            BTN = BTN.attachMovie("btSubmenu","btSubmenu",BTN.getNextHighestDepth());
            _ArraySubmenu[i].BTN=BTN;
            BTN._y=posY;
          posY=BTN._y+BTN._height+distanciaV;
          BTN._x=posX;
            defBTN(i);
        }
        iCarga=0;
        cargarElementosP();
        setImagenSubmenu(_iSubmenuActivo)
        //activar la opcion iSubmenuActivo
        _ArraySubmenu[_iSubmenuActivo].BTN.gotoAndPlay("over");
    }

    private function cargarElementosP()
    {   //llamado desde desplegarSubmenu, carga las imagenes pequeñas del submenu
        trace("cargarELEMENTOSP "+iCarga+"iCarga "+_ArraySubmenu[iCarga].imgP);
        var imagenSrc:String;
        var mc:MovieClip;
        imagenSrc = _ArraySubmenu[iCarga].imgP;
        mc = _ArraySubmenu[iCarga].BTN.elemento_mc.holder_mc;

[b]//ACA ES DONDE SE PRODUCE EL ERROR LA SEGUNA VEZ
//NO SE EJECUTA EL LOADER[/b]        loader.loadClip(imagenSrc,mc);
    }

    private function ControlaLoader(target:MovieClip)
    {   //llamado desde loaderInit
        var clase = this;
        if(target._name=="Img1" || target._name=="Img2")
      {
            //si es la imagen grande
            clase.maskChangeDepth(clase.clipCarga);//intercambia profundidades
            TweenFilterLite.to(clase.clipAnterior,0.5,{_alpha:0});
            TweenFilterLite.to(clase.clipCarga,0.5,{_alpha:100});

        }else if(target._parent._parent._name=="btSubmenu"){
            //si es la imagen pequeña
            clase.iCarga++;
            if(clase.iCarga<_ArraySubmenu.length)
            {
               cargarElementosP();
            }


        }
    }

    function defBTN(nro:Number)
    { //llamado al atachar cada clip de submenu
      //define las acciones del boton

    }


    public function setImagenSubmenu(iSubmenuActivo:Number)
    {
        //llmado al cliquear una imagen pequeña del submenu.
        //carga la imagenGrande correspondiente

        _iSubmenuActivo = iSubmenuActivo;
        var clase = this;
        var imagenSrc = _ArraySubmenu[iSubmenuActivo].imgG;
        //mask._visible=false;
        clipAnterior = clipCarga;
        clipCarga = averiguarClipCarga();
        clase.loader.loadClip(imagenSrc,clase.clipCarga);
    }



   function crearPrecarga()
   {    //crea al comienzo la precarga
    }

//**************
    public function desplegarDatosElemento(_iElementoActivo:Number)
    {
       //llamada al cliquear en MenuElementos.AS
       //carga la los datos del menu
    }

 //********************
    private function averiguarClipCarga()
    {   //averigua donde debe cargarse la imagen para crear efecto de fade in out
    }


    private function maskChangeDepth(mc)
    {
         //llamada una vez terminada de cargar la imagen a mostrar

    }



    //*************


}

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 27 Ene 2009 11:18 pm
Tambien incluyo como la llamo desde MenuElementos.as

En inicio la instancio y seteo el submenu que le toca.

Código :

      proyector_data = new Proyector(_destino._parent._parent.elementoGrande_mc, _ArrayElementos);
        proyector_data.setSubmenu(ArraySubmenuSel);
        proyector_data.desplegarDatosElemento(iElementoActivo);



Este es el que funciona bien, es el primero
Pero :shock:
Luego al cliquear en una opcion del menu repito esto.

Código :

proyector_data.setSubmenu(ArraySubmenuSel);
        proyector_data.desplegarDatosElemento(nro);


Tengo un palpito que es en como referencio la segunda vez...
Gracias!!!

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 28 Ene 2009 06:30 am
Hola, Modifique tu clase, esta es una mejor forma de tratar este tipo de situaciones, hacer que la clase funcione como el listener de los MovieClipLoader, quite todos esos "clase = this", cosas asi, y agrege this a todo lo que sea interno, esas cosas se llaman mejores practicas, ademas, marque los problemas que encontre y puse unos comentarios y movi una cosas, espero no te cause problema, no es dificl entenderlo, hice lo posible para que funcionara talcual como te funcionaba antes. Cualquier cosa me dices, espero que con eso se solucione el problema del Loader, espero no la encuentres muy cambiada. Suerte.

Código ActionScript :

import gs.TweenFilterLite;//ver documentacion
import mx.transitions.easing.*;

class Proyector extends MovieClip
{
    //*******variables de CONSTRUCTOR y externas
    private var _destino:MovieClip;
    private var _ArrayElementos:Array;
    private var _ArraySubmenu:Array;
    private var _iElementoActivo:Number;
    private var _iSubmenuActivo:Number;
    //***
    private var loader:MovieClipLoader;
    private var PRECARGA:MovieClip;
    private var mask:MovieClip;
   private var Img1:MovieClip;
   private var Img2:MovieClip;

    private var iCarga:Number;
    private var ImagenVisibleAhora:Number;
    private var clipCarga:MovieClip;
    private var clipAnterior:MovieClip;
    private var anchoImagenMax:Number;
    private var altoImagenMax:Number;
    private var primeraVez:Boolean;
    private var mouseListener:Object;

    public function Proyector(destino:MovieClip, ArrayElementos:Array)
    {
      super();
      this.anchoImagenMax = 424;
      this.altoImagenMax = 302;
      this._destino = ( destino == "" || destino == undefined ) ? _root : destino ;
      this._ArrayElementos = ( ArrayElementos.length >= 1 || ArrayElementos != undefined) ? ArrayElementos : [] ;
      this.loader = new MovieClipLoader();
      this.loader.addListener( this );
        this.inicio();
    }
   
   /**** LOADER EVENTS ****/
   public function onLoadStart( target_mc:MovieClip ):Void
   {
      this.PRECARGA._visible = true;
   }
   public function onLoadProgress( target_mc:MovieClip, loadedBytes:Number, totalBytes:Number):Void
   {
      var w:Number = Math.floor( loadedBytes / totalBytes * 100 );
      //Aqui te pongo un codigo para mostrar una precarga de 0 a 100 sobre todos los items
      trace("carga general -> " + ( (loadedBytes / totalBytes) + this.iCarga ) / this._ArraySubmenu.length ) * 100 );
        //this.PRECARGA.gotoAndStop( w );
        //this._parent.porcentaje_txt.text = w + "%";
   }
   public function onLoadComplete( target_mc:MovieClip, httpStatus:Number ):Void
   {
      clase.PRECARGA._visible = false;
      /*trace(">> onLoadComplete() httpStatus: " + httpStatus);*/
   }
   public function onLoadInit( target_mc:MovieClip ):Void 
   { 
      this.ControlaLoader( target_mc );
   }    
   public function onLoadError( target_mc:MovieClip, errorCode:String, httpStatus:Number):Void
   {
      this.PRECARGA._visible = false;
      trace("Error al cargar: " + target_mc._name); 
   }   
   /**** END LOADER EVENTS ****/

    private function inicio( Void ):Void
    {   //llamada al ejecutarse el Constructor
        this.primeraVez = true;
        this.iCarga = 0;
        //_iSubmenuActivo=0;
        //una vez ejecutado el constructor se crean mc auxiliares.
        this.Img1 = this._destino.holder_mc.createEmptyMovieClip("Img1", this._destino.holder_mc.getNextHighestDepth());
        this.Img2 = this._destino.holder_mc.createEmptyMovieClip("Img2", this._destino.holder_mc.getNextHighestDepth());
        this.mask = this._destino.attachMovie("maskElementoGrande","mask_mc", this._destino.getNextHighestDepth());
        this.crearPrecarga();
    }

    //*************MANEJO DE SUBMENU DE IMAGENES****************
   public function setSubmenu( ArraySubmenu:Array ):Void
   {
        //llamado cada vez que cambia la opcion del menu principal (MenuElementos>>onPressOpcion)
      for( var i:Number = 0 ; i < this._ArraySubmenu.length ; i++ )
        {
            this._ArraySubmenu[i].BTN.removeMovieClip();
        }
        this._ArraySubmenu = ArraySubmenu;
        this._iSubmenuActivo = 0;
        this.desplegarSubmenu();
    }

    private function desplegarSubmenu( Void ):Void
    {    //llamado al cambiar de submenu (setSubmenu)
        var posX:Number=0;
        var posY:Number=0;
        var distanciaV = 5;

        for(var i:Number = 0 ; i < _ArraySubmenu.length ; i++)
        {
         var BTN : MovieClip = this._destino.submenuElementos_mc.createEmptyMovieClip("item"+i, this._destino.submenuElementos_mc.getNextHighestDepth() );
         this._ArraySubmenu[ i ].BTN = BTN;
         
            BTN = BTN.attachMovie("btSubmenu","btSubmenu", BTN.getNextHighestDepth());
            BTN._y = posY;
         BTN._x = posX;
            this.defBTN(i);   
        }
        this.iCarga = 0;
        this.cargarElementosP();
        this.setImagenSubmenu( this._iSubmenuActivo );
        //activar la opcion iSubmenuActivo
        _ArraySubmenu[_iSubmenuActivo].BTN.gotoAndPlay("over");
    }

    private function cargarElementosP( Void ):Void
    {   //llamado desde desplegarSubmenu, carga las imagenes pequeñas del submenu
        trace("cargarELEMENTOSP "+iCarga+"iCarga "+_ArraySubmenu[iCarga].imgP);
        var imagenSrc:String = this._ArraySubmenu[iCarga].imgP;
        var mc:MovieClip = this._ArraySubmenu[iCarga].BTN.elemento_mc.holder_mc;
        this.loader.loadClip( imagenSrc , mc );
    }

    private function ControlaLoader( target_mc:MovieClip ):Void
    {   //llamado desde loaderInit
        if(target_mc._name == "Img1" || target_mc._name=="Img2" )
      {
            //si es la imagen grande
            this.maskChangeDepth( this.clipCarga );//intercambia profundidades
            TweenFilterLite.to(this.clipAnterior, 0.5, {_alpha:0});
            TweenFilterLite.to(this.clipCarga, 0.5, {_alpha:100});
        }
      else if(target_mc._parent._parent._name == "btSubmenu")
      {
            //si es la imagen pequeña
            this.iCarga++;
            if( this.iCarga < this._ArraySubmenu.length )
            {
               this.cargarElementosP();
            }
      }
    }

    function defBTN(nro:Number)
    { //llamado al atachar cada clip de submenu
      //define las acciones del boton

    }


    public function setImagenSubmenu( iSubmenuActivo:Number ):Void
    {
        //llmado al cliquear una imagen pequeña del submenu.
        //carga la imagenGrande correspondiente
        //:S redundante? this._iSubmenuActivo = iSubmenuActivo;
        var imagenSrc:String = this._ArraySubmenu[iSubmenuActivo].imgG;
        //mask._visible=false;
        this.clipAnterior = this.clipCarga;
        this.clipCarga = this.averiguarClipCarga();
      
      /*Aqui tienes un problema, Loader ya esta siendo ocupado
      * no puede cargar varias cosas a la vez, solo de una en una
      * por eso lo voy a cambiar por un loader nuevo, pero como
      * usa esta clase de listener, entonces la funcion onLoadProgress
      * se va a ver afectada, marcara progresos raros hasta que
      * imagenSrc se termine de cargar
      */
      var auxLoader:MovieClipLoader = new MovieClipLoader();
      auxLoader.addListener( this );
        auxLoader.loadClip( imagenSrc , this.clipCarga );
    }

   function crearPrecarga( Void ):Void
   {    //crea al comienzo la precarga
   }

//**************
    public function desplegarDatosElemento(_iElementoActivo:Number)
    {
       //llamada al cliquear en MenuElementos.AS
       //carga la los datos del menu
    }

 //********************
    private function averiguarClipCarga()
    {   //averigua donde debe cargarse la imagen para crear efecto de fade in out
    }
    private function maskChangeDepth(mc)
    {
         //llamada una vez terminada de cargar la imagen a mostrar
    }
    //*************
}

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 28 Ene 2009 10:38 am
Hola buen dia!
LongVie, use tu codigo y lo entendi.
Pero le sucede lo mismo que al mio.
Carga la primera vez, de cuando es llamado al instnaciarse el objeto.
Pero la segunda vez, cuando cliqueo una opcion del menu, el array lo pasa, la url a la imagen es correcta, se borran correctamente los atach anteriores, y se vuelven a crear correctamente. Pero no se llama al loader... :(

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 28 Ene 2009 11:05 am
No te sale ni el mensajito ese de que la url no se puede cargar, o si le pones un trace a los eventos del loader, aver cual da, o no da ningun evento la segunda vez? tambien intenta darle in treace a imagenSrc y mc en "this.loader.loadClip( imagenSrc , mc ); ".

Me platicas que paso. Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 28 Ene 2009 04:16 pm
Hola LongVie
No me sale mensaje en ninguno de los eventos.
Hice trace del mc y de la imagen y es correcto.
Lo curioso es que el loader al cargar la grande funciona...
Tengo ganas de meter el menu aca en proyector, porque esto se embroma cuando desde el menu llamo a la funcion que maneja el despliegue y carga de las imagenes.
proyector_data.setSubmenu

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 28 Ene 2009 07:17 pm
Agrega:

Código ActionScript :

this.loader.removeListener( this ); 
this.loader = new MovieClipLoader(); 
this.loader.addListener( this ); 


En la funcion "setSubmenu" antes de "this.desplegarSubmenu();". :S

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 29 Ene 2009 08:02 am
Hola LongVie!
Qué genial eres. :love:
Sin embargo sigue sin funcionar...
No hay caso no entra la segunda vez en el loader... :shock:

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 29 Ene 2009 09:18 am
mmm, he vuelto a mirar la clase de arriba para abajo, no encuentro porque eso deja de ser posible la segunda vez, talvez si posteas la funcion desplegarDatosElemento, pero aun asi no creo que este el error ahi. :S

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 29 Ene 2009 04:43 pm
Nup el error no es ahi porque la tengo comentada yno influye
Voy a intentar otra cosa radical, luego te cuento bien
Voy a intentar que no deba hacer set Submenu asi no perder el loader, luego te cuento, si?
Gracias por todo!

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 29 Ene 2009 05:35 pm
Claro, estare esperando para ver como resolviste el problema. Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 30 Ene 2009 11:22 am
Hola LongeVie
Ayudameeeeeeeeeeeeeee.
Mira mira lo mas extraño
Cuando no uso removeMovieClip, si bien no aparece la imagen, sí entra en el loader siempre...
Queres que te envie el zip?
He probado de todo y esto es lo mas cercano...

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 30 Ene 2009 05:53 pm
Ok ok, me parece correcto porque ya estamos muy cercanos a la solucion, si puedes agregame al messenger.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 30 Ene 2009 09:38 pm
Hola, la solucion de este post es la de poner en el for que elimina los botones, una linea de este tipo:

Código ActionScript :

this._ArraySubmenu[i].BTN._parent.removeMovieClip();


La explicacion para los que tengan el problema, es que en este caso, el codigo crea un clip con nombres item0, item1, y dentro de cada item, tenia un BTN, entonces, el loader la primera vez cargaba bien porque solo exisitia una instancia de item0 o item1 o itemx y cuando pasaba la segunda vez, se borraban, pero solo los BTN y se vovian a crear los items, esto creaba 2 instancia de movieclip con el mismo nombre, osea existian 2 item1(Es posible que existan dos MC con el mismo nombre en el mismo nivel), por tanto, el MovieclipLoader, ante esa situacion no carga los clips, este error es muy dificil de ver, porque si se hacen trace, todos los trace son correctos, y no se detecta la ambigüedad y pareciera que MvoieClipLoader tiene un bug, lo cual es falso. Suerte a todos.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 01 Feb 2009 10:35 am
Problema mas que resuelto. Gracias por todo!

Por claudia

103 de clabLevel



 

msie

 

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