PDA

Volledige versie bekijken : Via xml ingeladen plaatjes op vooraf gedefinieerde positie plaatsen


Gronz
%Europe/Berlin %485 %2009, 11:39
Hallo,

Ik zit met een probleem, waar ik niet uitkom. Het volgende deel is een stukje van een tutorial die ik gebruik voor het plaatsen van 6 afbeeldingen in een container movieclip. Deze 6 afbeeldingen kunnen om de zoveel tijd gewisseld worden dus de thumb afmetingen verschillen.

function callThumbs():void {
for (var i:Number = 0; i < my_total; i++) {

var thumb_url = my_images[i].@THUMB;

var thumb_loader = new Loader();
thumb_loader.load(new URLRequest(thumb_url));
thumb_loader.contentLoaderInfo.addEventListener(Ev ent.COMPLETE, thumbLoaded);

thumb_loader.name = i;

thumb_loader.x = ??;
thumb_loader.y = ??;
}
}
Op de positie van de ?? moeten dus in feite 6 verschillende waarden komen. Moet ik hiervoor toch een Array maken? Zo ja, iemand een hint hoe? Want die variabele is van de loader class. Ik kan ze alleen met een array over gelijke tussenafstand verdelen. Maar de x en y posities van de 6 plaatjes zijn bijv. plaatje1.x = 100 plaatje1.y=200 plaatje2.x=350 plaatje2.y=650.
Ik heb vooralsnog 1 movieclip container waar de 6 plaatjes inkomen. Moet ik er wellicht daar 6 van maken en de urrequest daar direct aan koppelen?
Alvast bedankt...

LuchtJon
%Europe/Berlin %446 %2009, 10:43
Ik begrijp uit je post dat je niet precies weet hoe groot de thumbnails zijn, en dat je een bepaalde tussenruimte tussen de thumbnails wil hebben?

Wat dacht je bijvoorbeeld hiervan?

var thumbArray : Array = new Array(my_total);
var spacing : int = 20;
var counter : int = 0;

for(var i in thumbArray){
var thumb_url = my_images[i].@THUMB;
thumbArray[i] : Loader = new Loader();
thumbArray[i].contentLoaderInfo.addEventListener(Event.COMPLETE , thumbLoaded);
thumbArray[i].name = i;
thumbArray[i].load(new URLRequest(thumb_url));
}

function thumbLoaded(e:Event):void {
counter++;
if(counter == my_total){
placeThumbnails();
}
}

function placeThumbnails():void {
for(var i in thumbArray){
if(i == 0){
thumbArray[i].x = thumbArray[i].y = 0;
} else {
thumbArray[i].x = thumbArray[i-1].x + thumbArray[i-1].width + spacing;
thumbArray[i].y = thumbArray[i-1].y;
}
}

Dit stukje code maakt, gegeven my_total,my_images en spacing, een array aan ter grootte van my_total, en zet in elke entry van de array een loader met naam = i. Dan laadt hij de thumbnail in, en bij de Event.COMPLETE functie telt hij 1 bij de geladen thumbs op. Als ze allemaal geladen zijn plaatst hij ze achter elkaar met 20px spacing.