hola
mira tengo esta funcion de multiplecargas a ver si te sirve XDXD
Código PHP:
package com.cfx.net{
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.ProgressEvent;
public class MultipleCarga {
var loaders:Array=new Array ;
var dirs:Array=new Array ;
var BytesLoaded:Number=0;
var BytesTotal:Number=0;
var localFunc:Object={LPrecarga:function(){} ,LProgreso:function(l:Number,t:Number){},LResultado:function(l:Loader){}};
var globalFunc:Object={GPrecarga:function(){} ,GProgreso:function(l:Number,t:Number){},GResultado:function(l:Array){}};
var cont:int=0;
public function MultipleCarga():void {
}
public function addDir(dir:String):void {
dirs.push(dir);
}
public function load():void {
globalPreloader();
for (var i:int=0; i < dirs.length; i++) {
local(dirs[i]);
}
}
private function local(dir:String):void {
var total:Boolean=true;
var loader:Loader=new Loader ;
loader.contentLoaderInfo.addEventListener(Event.OPEN,localPreloader);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,localProgress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,localLoadResult);
loader.load(new URLRequest(dir));
loaders.push(loader);
function localPreloader(event:Event):void {
localFunc.LPrecarga();
}
function localProgress(event:ProgressEvent):void {
if (total) {
BytesTotal+= event.bytesTotal;
total=false;
}
BytesLoaded+= event.bytesLoaded;
localFunc.LProgreso(event.bytesLoaded,event.bytesTotal);
globalProgress();
}
function localLoadResult(event:Event):void {
localFunc.LResultado(loader);
cont++;
if (cont == dirs.length) {
globalLoadResult();
}
}
}
private function globalPreloader():void {
globalFunc.GPrecarga();
}
private function globalProgress():void {
globalFunc.GProgreso(BytesLoaded,BytesTotal);
}
private function globalLoadResult():void {
globalFunc.GResultado(loaders);
}
public function get GobalFunction():Object {
return globalFunc;
}
public function set GobalFunction(param:Object):void {
globalFunc=param;
}
public function get LocalFunction():Object {
return localFunc;
}
public function set LocalFunction(param:Object):void {
localFunc=param;
}
}
}
y para ejecutarlo seria mas o menos asi
Código PHP:
import com.cfx.net.*
var cargas:MultipleCarga=new MultipleCarga()
cargas.addDir("img_1.jpg")
cargas.addDir("img_2.jpg")
cargas.addDir("img_3.jpg")
cargas.addDir("img_4.jpg")
cargas.addDir("img_5.jpg")
var tex:TextField=new TextField()
function muestraTexto(){
addChild(tex)
}
function muestraCarga(bytLoad:Number,bytTotal:Number){
tex.text=String((bytLoad/bytTotal)*100)
}
function quitaTexto(todos:Array){
//removeChild(tex)
for(var i:int=0;i<todos.length;i++){
addChild(todos[i])
}
}
var fun=cargas.GobalFunction
fun.GPrecarga=muestraTexto
fun.GProgreso=muestraCarga
fun.GResultado=quitaTexto
cargas.load()
también sirve para hacer preloads individuales en ves de utilizar las funciones globales tienes que utilizar las locales
var fun=cargas.LocalFunction
fun.LPrecarga=muestraTexto
fun.LProgreso=muestraCarga
fun.LResultado=quitaTexto
ten en cuenta que estas funciones se repiten por cada elemento cargado asi que para poder utilizarlas correctamente tendrías que aplicar otro tipo de modificaciones pero ese no es tu caso creo que con el ejemplo de arriba te servirá