Comunidad de diseño web y desarrollo en internet online

tamaño de movieclips

Citar            
MensajeEscrito el 06 Mar 2006 05:12 pm
Hola flasheros.

Para variar me dirijo a vosotros con una duda en el codigo. Tengo un script en el que se cargan dinamicamente unas imagenes. La ruta de las imagenes la cargo desde una base de datos a traves de php.

Una vez obtenido la ruta de la imagen, creo dos movieclips, uno que contendra la imagen y otro que contendra las acciones (si lo hiciera en uno solo no me funcionaria el codigo). En el que contendra la imagen, creo un MovieClipLoader, y a continuación cargo dicha imagen. Hecho esto, intento saber el tamaño (_width, _height) que tiene la imagen que he cargado con el MCL, pero siempre me da 0.

El código del script es el siguiente (he quitado las lineas que no tenian que ver con mi problema).

Muchas gracias.

Código :

imagenes_lv.load("http://akhasis.net/listarthumbsproyecto.php");


imagenes_lv.onLoad=function(exito)
{
   for (var i=0;i<imagenes_lv.num;i++)
    {
       espacio_x=espacio_x+10;
        thumbActual=imagenes_lv["thumbnail"+i];
        claveActual=imagenes_lv["clave"+i];

      //creo dos mc, uno que se llama clip (contendra las acciones) y otro que se llama clip hijo (que contendra las imagenes). Es necesario crear dos porque cuando cargas una imagen en un mc se ignora todo el codigo que contenia este mc.
      
        var name: String=("imagen"+i+"_mc");
        var clip:MovieClip =createEmptyMovieClip(name,getNextHighestDepth());
      
        var clipHijo:MovieClip =clip.createEmptyMovieClip(name+i,getNextHighestDepth());
        clipHijo.loadMovie("imagenes_proyecto/"+thumbActual,getNextHighestDepth());
        clip._xscale=100;
        clip._yscale=100;
        clip._x=espacio_x;
        clip._y=10;
        espacio_x=espacio_x+50;
   clip.i=i;
      
   clip.onPress = function()
        {
      proyecto_lv.load("http://akhasis.net/listarproyecto.php?clave="+imagenes_lv["clave"+this.i]);
         _root.direccion=imagenes_lv["clave"+this.i];
         proyecto_lv.onLoad=function(exito)
         {
            //----------
            var precargador_mcl:MovieClipLoader = new MovieClipLoader();
            var listener:Object = new Object();
            
            listener.onLoadStart = function(target_mc) {
               trace("start");
            }
            
            listener.onLoadComplete= function(target_mc) 
            {
               //_root.imagenes_mc._xscale=10;
               //_root.imagenes_mc._yscale=10;
               
               trace(_root.imagenes_mc._width);
            }
            
            precargador_mcl.addListener(listener);
            precargador_mcl.loadClip("imagenes_proyecto/"+proyecto_lv.imagen, _root.imagenes_mc);
            
            //-----------            
                  
}

Por akhasis

75 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Mar 2006 08:50 pm
Si es raro... a mi me paso algo parecido. Si pones el trace en el onLoadComplete todavia no reconoce las medidas:

Código :

(simplificando tu codigo)
var precargador_mcl:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
listener.onLoadComplete = function(target_mc) {
   trace(_root.imagenes_mc._width);
};
precargador_mcl.addListener(listener);
precargador_mcl.loadClip("logo.png", _root.imagenes_mc);
stop();

--> 0

En cambio si colocas el trace un par de fotogramas más adelente ya lo reconoce:

(fotograma1)

Código :

var precargador_mcl:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
listener.onLoadComplete = function(target_mc) {
   play();
};
precargador_mcl.addListener(listener);
precargador_mcl.loadClip("logo.png", _root.imagenes_mc);
stop();

(fotograma3)

Código :

trace(_root.imagenes_mc._width);

--> 200
No me preguntes porque...
Prueba con esto, a lo mejor te sirve:

Código :

var precargador_mcl:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
listener.onLoadComplete = function(target_mc) {
   onEnterFrame = function () {
      trace(_root.imagenes_mc._width);
      delete onEnterFrame;
   };
};
precargador_mcl.addListener(listener);
precargador_mcl.loadClip("logo.png", _root.imagenes_mc);
stop();

-->200

Ya dirás.
Saludos

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 07 Mar 2006 10:40 am
muchas gracias, esto va muy bien :D que cosa mas extraña, se supone que el onLoadComplete esta para detectar cuando ya funciona... lo dicho, muchas gracias :D

Por akhasis

75 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Mar 2006 02:01 pm
En vez de utilizar onLoadComplete, utilicen onLoadInit, así:

Código :

var precargador_mcl:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
listener.onLoadInit = function(target_mc) {
   trace(target_mc._width);
};
precargador_mcl.addListener(listener);
precargador_mcl.loadClip("logo.png", _root.imagenes_mc);
stop();

Por Altrix

156 de clabLevel



 

Cuba, Ciudad de la Habana

firefox
Citar            
MensajeEscrito el 09 Mar 2006 05:41 am
Tu pregunta resolvio una duda que tenia gracias akhasis ^^ toy happy. despues de patalear como cancha declarando instancias con bucles que no me salian . Bueno nos vemos. Suerteee :)

Por davo25

183 de clabLevel



 

Lima - Peru

msie

 

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