Can someone tell me why rapid clicking (moving to another part of the gallery) makes the loader loads the wrong picture?
Here is a simple example:
var req:URLRequest=new URLRequest("gallery.xml");
var xmlLoader:URLLoader=new URLLoader(req);
xmlLoader.addEventListener(Event.COMPLETE, xmlComplete);
var myXML:XML;
var urlArray:Vector.<String> = new Vector.<String>();
var i:int;
var page:int;
var xmlIndex:int;
var wallIndex:int;
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, picComplete);
function xmlComplete(e:Event):void {
myXML=XML(xmlLoader.data);
for (i=0; i<myXML.children().length(); i++) {
urlArray*=myXML.@objPath+myXML.child(i).@objUrl;
trace(urlArray*);
}
req.url=urlArray[0];
loader.load(req);
}
function picComplete(e:Event):void {
if (wallIndex<4) {
var image:Bitmap=new Bitmap(e.target.content.bitmapData);
container.addChild(image);
image.y=wallIndex*80;
wallIndex++;
xmlIndex++;
req.url=urlArray[xmlIndex];
loader.load(req);
} else {
wallIndex=0;
}
}
l.addEventListener(MouseEvent.CLICK, goL, false, 1);
r.addEventListener(MouseEvent.CLICK, goR, false, 1);
function goL(e:Event):void {
if (page-1>=0) {
wallIndex=0;
while (container.numChildren) {
container.removeChildAt(0);
}
page-=1;
xmlIndex=page*4;
req.url=urlArray[xmlIndex];
loader.load(req);
}
}
function goR(e:Event) {
if (page+1<5) {
wallIndex=0;
while (container.numChildren) {
container.removeChildAt(0);
}
page+=1;
xmlIndex=page*4;
req.url=urlArray[xmlIndex];
loader.load(req);
}
}