Foros del Web » Creando para Internet » Flash y Actionscript »

problema onLoadInit en bucle de imagenes

Estas en el tema de problema onLoadInit en bucle de imagenes en el foro de Flash y Actionscript en Foros del Web. Buenos dias a tod@s, estoy creando un listado de imagenes, las cuales tengo que redimensionar, ya que es un listado de miniaturas. Despues de buscar ...
  #1 (permalink)  
Antiguo 20/08/2008, 03:14
Avatar de editjj  
Fecha de Ingreso: febrero-2006
Ubicación: madrid
Mensajes: 34
Antigüedad: 18 años, 2 meses
Puntos: 0
problema onLoadInit en bucle de imagenes

Buenos dias a tod@s,

estoy creando un listado de imagenes, las cuales tengo que redimensionar, ya que es un listado de miniaturas. Despues de buscar información en muchos sitios he llegado al punto de entender que para poder redimensionarlas hay que hacerlo una vez que esten cargadas completamente las imagenes, para esto he dejado de utilizar loadMovie() y he utilizado loadClip() de MovieClipLoader, para poder acceder a las propiedades una vez cargadas con onLoadInit(). He realizado esta prueba:
Código:
this.createEmptyMovieClip("tester_mc" + 1, 1);
this["mcLoader"+ 1] = new MovieClipLoader();
this["mcLoader"+ 1].addListener(this);
this["mcLoader"+ 1].loadClip("prueba.jpg", this["tester_mc" + 1]);

this.createEmptyMovieClip("tester_mc" + 2, 2);
this["mcLoader"+ 2] = new MovieClipLoader();
this["mcLoader"+ 2].addListener(this);
this["mcLoader"+ 2].loadClip("prueba2.jpg", this["tester_mc" + 2]);

function onLoadInit(tester_mc2:MovieClip) {
    trace("onLoadInit: " + tester_mc2);    
    trace ("ancho imagen1," + this["tester_mc" + 1] + ": " + this["tester_mc" + 1]._width);
    trace ("alto imagen1," + this["tester_mc" + 1] + ": " + this["tester_mc" + 1]._height);
    trace ("ancho imagen2," + this["tester_mc" + 2] + ": " + this["tester_mc" + 2]._width);
    trace ("alto imagen2," + this["tester_mc" + 2] + ": " + this["tester_mc" + 2]._height);
}
en la ventana de salida tenemos:
Código:
onLoadInit: _level0.tester_mc2
ancho imagen1,_level0.tester_mc1: 660
alto imagen1,_level0.tester_mc1: 440
ancho imagen2,_level0.tester_mc2: 534
alto imagen2,_level0.tester_mc2: 677
onLoadInit: _level0.tester_mc1
ancho imagen1,_level0.tester_mc1: 660
alto imagen1,_level0.tester_mc1: 440
ancho imagen2,_level0.tester_mc2: 534
alto imagen2,_level0.tester_mc2: 677
hasta aqui todo me sirve y me funciona, el problema viene cuando intento crear un bucle, ya que el listado de imagenes lo saco de un XML. El código con el que creo el bucle es:
Código:
var pageOrder:Array = Array("prueba.jpg", "prueba2.jpg", "prueba.jpg", "prueba2.jpg", "prueba.jpg");



for( i = 0; i < 5; i++){

        var t = listado.dummy.duplicateMovieClip("tester_mc"+i, i);
        this["mcLoader"+ i] = new MovieClipLoader();
        this["mcLoader"+ i].addListener(this);
        this["mcLoader"+ i].loadClip( pageOrder[i] , t.pic);        
        t._x = i * 90; // posición x, primer valor 0
        
        
    function onLoadInit(tester_mc:MovieClip) {
        
        trace("onLoadInit: " + tester_mc);    
        trace ("ancho imagen1," + this["tester_mc" + 1] + ": " + this["tester_mc" + 1]._width);
        trace ("alto imagen1," + this["tester_mc" + 1] + ": " + this["tester_mc" + 1]._height);
        trace ("ancho imagen2," + this["tester_mc" + 2] + ": " + this["tester_mc" + 2]._width);
        trace ("alto imagen2," + this["tester_mc" + 2] + ": " + this["tester_mc" + 2]._height);
    }
        
}
con esto, no se entra nunca en el onLoadInit(), he probado a sacar esta función del bucle for(), pero los resultados son los mismos.

¿alguién ve el error por algún lado, o conoce la manera correcta de hacerlo?

a la espera de comentarios

muchas gracias



ya he conseguido solucionarlo, dejo aqui el código para quién lo pueda necesitar.
Código:
// defino la matriz y le doy valores
var pageOrder:Array = Array("prueba.jpg", "prueba2.jpg", "prueba.jpg", "prueba2.jpg", "prueba.jpg");
// ejecuto la función que crea el listado
crear_listado();

// con esto comprobamos todas las cargas que se hacen con MovieClipLoader()
function onLoadInit(mc:MovieClip) {        
    trace("onLoadInit: " + mc);    
    trace ("ancho imagen: " + mc._width);
    trace ("alto imagen: " + mc._height);
    mc._width = mc._height = 80;
}

// creo la función para generar el listado
function crear_listado():Void
{
    for( i = 0; i < pageOrder.length; i++){
    
            var t = listado.dummy.duplicateMovieClip("tester_mc"+i, i);
            this["mcLoader"+ i] = new MovieClipLoader();
            this["mcLoader"+ i].addListener(this);
            this["mcLoader"+ i].loadClip( pageOrder[i] , t.pic);
            
            t._y = i * 90; // posición x, primer valor 0
            
    }
}

Última edición por editjj; 20/08/2008 a las 03:37 Razón: solucionado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:46.