PDA

Volledige versie bekijken : Preloader met meerdere afbeeldingen AS2


h0pse
%Europe/Berlin %479 %2009, 12:29
Zelf leer ik AS 3, maar heb nog een hele weg te gaan. Daarom heb ik al in het AS 3 gedeelte hulp gaan vragen en veel gekregen. Nu de code lekker loopt en ik hem wil testen krijg ik de melding dat het AS 2 moet.

Zijn er mensen die dat vlotjes kunnen? Of dat mij allesinds op weg kunnen helpen ?

Hier is alvast de code in as3:


stop();
var i:Number = new Number(0);//nummer wat we nodig hebben voor loopje
var imageLoader:Loader = new Loader();//loader waar de images in geladen gaan worden
var startKnop_mc:MovieClip = new MovieClip(); //startknop die we nodig hebben om animatie te beginnen
var animatieTimer:Timer = new Timer(40);//400ms, dus 2.5 afbeeldingen per sec. nu 41.7, ceil(1k/24)
var nCurrentImage:Number = new Number(1);//nummer om bij te houden bij welke image we zijn.
var nAantalAfbeeldingen:Number = new Number(48);//hoeveel afbeeldingen moeten er geladen worden?
var imageHolder_mc:MovieClip = new MovieClip();//hier komen alle loaders in te staan.

function init():void {
addChild (imageHolder_mc);//imageHolder toevoegen aan de stage
loadImage(1);//beginnen met de eerste afbeelding laden
imageLoader.contentLoaderInfo.addEventListener(Eve nt.COMPLETE, imageLoaded);
}

function loadImage(nImage:Number):void {
trace('images/'+nCurrentImage+'.png');
imageLoader.load(new URLRequest('images/'+nCurrentImage+'.png'));//laad de afbeelding waar we nu zijn.
}

function knopHandler(e:MouseEvent):void {
removeChild(startKnop_mc); //startknop niet meer nodig dus verwijderen
startKnop_mc = null;
nCurrentImage = 1;//het nummer wat we eerder gebruikte om te kijken waar we met laden waren gebruiken we nu om te kijken waar we met afspelen zijn.
animatieTimer.start();
animatieTimer.addEventListener(TimerEvent.TIMER, animatieHandler);
imageHolder_mc.getChildByName(String(nCurrentImage )).alpha = 1;
}

function animatieHandler(e:TimerEvent):void {
nCurrentImage++;
if (nCurrentImage <= nAantalAfbeeldingen) {
imageHolder_mc.getChildByName(String(nCurrentImage-1)).alpha = 0;//de oude afbeelding onzichtbaar
imageHolder_mc.getChildByName(String(nCurrentImage )).alpha = 1;//en de volgende zichtbaar
} else {
trace ('animatie afgerond');
animatieTimer.stop(); //animatie klaar dus timer stoppen
removeChild(imageHolder_mc); //imageHolder niet meer nodig dus verwijderen
imageHolder_mc = null;
gotoAndPlay(2);
}
}

function imageLoaded(e:Event):void {
var image_mc:MovieClip = new MovieClip();
image_mc.addChild(e.target.content);
image_mc.name = String(nCurrentImage); //movieclip een naam geven zodat hij later nog aan te spreken is.
image_mc.alpha = 0; //zodat hij niet zichtbaar is.
trace (e.target.url+' is geladen.');
imageHolder_mc.addChild(image_mc); //ik voeg de afbeeldingen toe aan een movieclip, niet noodzakelijk maar dan staat straks alles netjes in 1 overkoepelende movieclip.
nCurrentImage++; //op naar de volgende afbeelding
if (nCurrentImage <= nAantalAfbeeldingen) {//als nog niet alle afbeeldingen geladen zijn
loadImage(nCurrentImage); //volgende afbeelding laden
} else { //we hebben blijkbaar alle afbeeldingen geladen
trace ('alle images geladen');
//de startknop aanmaken en even centreren
createButton(); //even een vorm maken
startKnop_mc.x = stage.stageWidth/2;
startKnop_mc.y = stage.stageHeight/2;
startKnop_mc.buttonMode = true;
startKnop_mc.addEventListener(MouseEvent.CLICK, knopHandler);
startKnop_mc.alpha = 0;
addChild(startKnop_mc);
}
}

function createButton():void { //deze functie is compleet niet nodig voor het hele image loaden maar zo kan je gewoon code knippen en plakken zonder dat je hele fla's mee moet nemen
var square:Sprite = new Sprite();
square.graphics.lineStyle(3,0xffffff);
square.graphics.beginFill(0xffffff);
square.graphics.drawRect(0,0,300,250);
square.graphics.endFill();
square.x = 0-square.width/2;
square.y = 0-square.height/2;
square.alpha = 0;
startKnop_mc.addChild(square);
}

init()

Jan
%Europe/Berlin %494 %2009, 12:52
http://livedocs.adobe.com/flex/201/langref/index.html?migration.html&all-classes.html

Groeten;
Jan

h0pse
%Europe/Berlin %553 %2009, 14:17
Ik vrees dat ik die tijd niet meer heb.

Niemand dat vlotjes kan vertalen en even zin heeft? :)