Repartir carga AS3
5 seguidores
Con AS3 cargo datos de un xml, que me proporciona, entre otros, la ruta de donde cargo distintas miniaturas o thumbs.
Por lo general dispongo las miniaturas en un movieclip, que desplazo con unas flechas para poder ir viendolas todas; pero si son muchas la carga general se hace larga y suele dar problemas cuando, mientras van cargando, quiero visualizar alguna ya cargada.
¿Alguien conoce algún ejemplo para presentar las miniaturas repartidas en distintos movieclips? Por ejemplo, quiero verlas de 10 en 10 y tengo 50 imáganes.
¿Cómo puedo realizar cargas parciales?
Diego Lorenzo
Habría que ver como las vas cargando. De todas formas, cuando tengas que utilizar muchas cargas de datos utiliza la clase queueloader: http://blog.hydrotik.com/2008/10/29/queueloader-rev-31-major-update-usage/ es sencilla de usar y mu práctica.
Saludos
basbravo
Hola!!
Lo que hago a menudo para cargar una galería de imágenes es cargar y posicionar en el escenario solo los movieClips contenedores, sin cargar todavía las imágenes.
Para cada movieClip le asigno una función interna como esta:
trabajo.cargar = function():void
{
var thum:Loader = new Loader();
var dir:URLRequest = new URLRequest("direccion de la imagen");
//instancio el objeto loader dentro del movieClip
this.addChild(thum);
thum.contentLoaderInfo.addEventListener(Event.COMPLETE, thumCargado);
thum.load(dir);
}
donde "trabajo" es el nombre del movieClip
Luego mediante una función recursiva (Ej: cargaThumbs) llamas a la función "cargar" dentro del primero movieClip, y cuando la carga se completa mediante la función que captura el evento COMPLETE (en este caso thumCargado), vuelves a llamar a la función cargaThumbs accediendo al siguiente movieClip y repitiendo la jugada.
De esta forma no se satura el swf, y la verdad es que me funciona muy bien.
Un ejemplo de como queda: http://www.enteractiv.es/#/interactivo/web/inmodoval.
Espero que te sirva de ayuda.
Saludos
Ochionet
Hola, lo normal es que aunque tengas el contenido del xml en memoria, si tienes una clase que se ha encargado de gestionar el contenido del mismo le pidas por medio de un método pasándole un parámetro (en este caso un número) para que te devuelva un array de 10 objetos, uno por cada item del xml, algo parecido a un paginado.
Una vez que recibes el array puedes tener en la clases principal del apartado en el que te encuentres, un método implementado que reciba el array y genere por medio de otra clase cada uno de los objetos (Thumbnail). Este thumbnail tendrá su propio cargador de imagen y sus eventos.
Lo principal en todo esto es hacer clases independientes que sean capaces de funcionar por si mismas y además reutilizables en el futuro.
En principio parece liado, pero la mejor manera de trabajar es romper la estructura todo lo que puedas en clases pequeñas para poder hacer
una buena gestión de la información, de esta forma si en el futuro tienes que realizar alguna modificación sólo tendrás que revisar el código de una clase, evitando así tener que repasar todo el código.
La idea es simplificar.
Saludos,
Mostaza de Canela
Gracias a los tres por vuestra ayuda.
La verdad es que aún no me he puesto a programar con clases, lo hago todo con código dentro del swf; pero me espera desde hace unos días en la mesa el Anaya O'Reilly a que tenga tiempo para dedicarle.
La teoría del desarrollo de lo que quiero hacer creo que la tengo clara, pero traducirlo a AS3 me resulta difícil, porque me acabo de pasar a él sin apenas controlar AS2. Una locura.
Sé que tengo que cargar todos los datos del archivo xml.
Determinar cuantas imágenes tengo (length).
Establecer cuantas quiero mostrar por página y la cantidad de "páginas" o cargadores de miniaturas que necesitaré.
Dividirlas en distintos grupos para su posterior carga.
Para ello sé que debo usar un array donde poner todo, y otros arrays donde repartir lo que he dividido.
Pero lo que decía: transcribir eso en AS3 para mí, un amateur de la programación, se me enrevesa demasiado.
Con el código de Bas, y el ejemplo de su web, al menos tengo una orientación y la idea de que es posible.
Lo seguiré intentando.
Gracias de nuevo.
dourado
BuenAS!
Asi como el queloader tienes el bulkloader tanto uno como otro te permiten hacer una cola de cargas y controlarlas facilmente.
http://code.google.com/p/bulk-loader/
Saludos++