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:
en la ventana de salida tenemos: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); }
Código:
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: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
Código:
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.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); } }
¿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 } }