Пробую грузить одним прелоадером. Но возникла проблема если во время загрузки, сразу вызвать загрузку другого контента. Получаю bytesLoaded намного больше.
Код:
private var _loader : Loader;
public function LoadMore() {
//INIT
var offset:uint = 20;
var btn1:Sprite = button("test1");
var btn2:Sprite = button("test2");
btn1.x = btn2.x = offset;
btn1.y = offset;
btn2.y = 3 * offset;
_loader = new Loader();
//DISPLAY LIST
addChild(btn1);
addChild(btn2);
//LISTENERS
btn1.addEventListener(MouseEvent.CLICK, onClick);
btn2.addEventListener(MouseEvent.CLICK, onClick);
//ACTIONS
}
private function button(str : String) : Sprite {
var btn : Sprite = new Sprite();
btn.graphics.lineStyle(0, 0x333333,0.4,true);
btn.graphics.beginFill(0xF6F6F7);
btn.graphics.drawRoundRect(0, 0, 100, 20, 10, 10);
btn.graphics.endFill();
btn.name = str;
var tf : TextField = new TextField();
tf.selectable = false;
tf.autoSize = TextFieldAutoSize.LEFT;
tf.text = str;
tf.x = (btn.width - tf.width) * 0.5;
tf.y =( btn.height - tf.height) * 0.5;
btn.mouseChildren = false;
btn.buttonMode = true;
btn.addChild(tf);
return btn;
}
private function loadIMG(path : String) : void {
var url : URLRequest = new URLRequest(path + ".jpg");
try{
_loader.unload();
trace("UNLOAD");
}catch (e : TypeError) {
//nothing
}
try{
_loader.close();
trace("CLOSE STREAM");
}catch (e : TypeError) {
//nothing
}catch (e : Error){
//nothing
}
_loader.load(url);
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imageLoading);
}
/*
* EVENTS
*/
private function imageLoading(e : ProgressEvent) : void {
trace("LOADED:",e.bytesLoaded," TOTAL:", e.bytesTotal);
}
private function imageLoaded(e : Event) : void {
_loader.x = 150;
addChild(_loader);
}
private function onClick(e : MouseEvent) : void {
loadIMG(e.currentTarget.name);
}
и в итоге даже получается вот такая картина