Hoy me disponia a hacer una pequeña galeria de imagenes importadas con unos simples botones de alante, atras, inicio, fin y un preload comun para todas ellas.
Código :
var i:int=0;
var num_fotos:int=6;
var por_txt:TextField = new TextField();
var ClassReference:Class = getDefinitionByName("barra") as Class;
var instancia:Object = new ClassReference();
var por:uint = 0;
var ldr:Loader = new Loader();
function cargar(i):void
{
configurarListeners(ldr.contentLoaderInfo );
ldr.x=100;
ldr.y=100;
ldr.load(new URLRequest("img/0" + i + ".jpg"));
addChild(ldr);
}
function configurarListeners(disparador:IEventDispatcher):void
{
disparador.addEventListener(Event.COMPLETE, completo);
disparador.addEventListener(Event.OPEN, comienzo);
disparador.addEventListener(ProgressEvent.PROGRESS, progreso);
disparador.addEventListener(IOErrorEvent.IO_ERROR, error);
disparador.addEventListener(Event.UNLOAD, descargado);
}
function comienzo(e:Event):void
{
trace("Comenzo la carga" + e);
addChild(DisplayObject(instancia));
DisplayObject(instancia).x=100;
DisplayObject(instancia).y=100;
por_txt.x=100;
por_txt.y=105;
addChild(por_txt);
por_txt.text = "0%";
}
function progreso(e:ProgressEvent):void
{
por = Math.round((e.bytesLoaded*100)/e.bytesTotal);
por_txt.text=String(por)+" %";
DisplayObject(instancia).width=por*6;
}
function completo(e:Event):void
{
trace("Se completo la carga" + e);
removeChild(DisplayObject(instancia));
removeChild(por_txt);
}
function error(e:IOErrorEvent):void
{
trace("Ocurrio un error: " + e);
}
function descargado(e:Event):void
{
trace("Archivo descargado: " + e);
}
function galeria(evento:MouseEvent)
{
switch (evento.target) {
case mas_btn :
if (i<num_fotos-1) {
i++;
cargar(i);
break;
} else {
break;
}
case menos_btn :
if (i>0) {
i--;
cargar(i);
break;
} else {
break;
}
case inicio_btn :
i=0;
cargar(i);
break;
case fin_btn :
i=num_fotos-1;
cargar(i);
break;
}
}
mas_btn.addEventListener(MouseEvent.CLICK,galeria);
menos_btn.addEventListener(MouseEvent.CLICK,galeria);
inicio_btn.addEventListener(MouseEvent.CLICK,galeria);
fin_btn.addEventListener(MouseEvent.CLICK,galeria);
cargar(i);
Parece funcionar, pero no.... en el simulador de descarga de flash me hace los preloads correctamente, pero solo si dejo terminar la carga de la foto actual para pinchar en la siguiente.
En el caso de pasar a siguiente sin haber terminado la carga de la foto actual, me hace un extraño extrañisimo... solo me muestra media foto... y la otra mitad gris.....o me manda el preload al 150%... cosas muy raras...
Creia que al pinchar sobre una nueva solicitud el cargador se vaciaciaria y tomaria los nuevos datos desde el principio, sinembargo no es asi....
POR FAVOR QUE NADIE ME DIGA LO DE DESACTIVAR LOS BOTONES HASTA QUE CARGUE, YA QUE NO ES LO QUE QUIERO.
Alguien me puede ayudar????? Os lo agradeceria, llevo unas cuantas horas intentandolo solucionar...
