ActionScript3.0 onUpdate parametret brugt i Tweener

1. juli 2008

atter engang ledte Google Reader mig forbi Ernesto Quezada's blog og denne gang læste jeg med stor interesse indlægget om Tweeners onUpdate parameter.. for selv om jeg gennem det sidste år har brugt Tweener i nærmest alle Flash-projekter, så har jeg aldrig brugt, eller været opmærksom på muligheden for brug af parametret onUpdate.

dette gør Tweener endnu bedre... som om Tweener ikke i sig selv er en gave til Flash i forvejen.

så, for at vise en fornuftig form for brug af dette parameter, lavede jeg dette meget simple spil.
sådan ser spillet ud uden brug af onUpdate parametret

det er meget simpelt - hver gang du klikker på en af de 3 knapper, tilføjer du nogle pixel til længden af din bar nederst. længden af baren vil blive skrevet ud til dig i et tekstfelt, når baren er færdig med at vokse.

men ville det ikke være meget mere lækkert, hvis tekstfeltet opdaterede info om længden på baren mens den voksede istedet? klart!

så se denne version 2 af samme spil :O)

denne gang, samme tåbelige spil, men med et forbedret tekstfelt, der opdaterer info om længden på tekstfeltet, mens den vokser.
her er hvad der er skrevet i ActionScript:

//importer Tweener
import caurina.transitions.Tweener;

//sæt myScore til 1 og definer teksten i myCounter tekstfeltet
var myScore:Number = 1;
myCounter.text = myScore +" px";

//tilføj eventListeners som kalder funktionen boostMyLine når der klikkes på knapperne
add100_mc.addEventListener(MouseEvent.CLICK, boostMyLine);
add50_mc.addEventListener(MouseEvent.CLICK, boostMyLine);
add20_mc.addEventListener(MouseEvent.CLICK, boostMyLine);

//funktionen boostMyLine
//denne funktion tilføjer 20, 50 eller 100px til bar'ens længde.
//det tager 0.6 sekund at booste linien, i disse 0,6 sekunder kører funktionen showMyUpdate
//når baren er vokset færdig kører funktionen completedMyUpdate
function boostMyLine(e:Event):void {

if (e.target.name == "add20_mc") {
Tweener.addTween(myLine, {width:myScore+20, time:0.6, onUpdate:showMyUpdate, onComplete:completedMyUpdate});
} else if (e.target.name == "add50_mc") {
Tweener.addTween(myLine, {width:myScore+50, time:0.6, onUpdate:showMyUpdate, onComplete:completedMyUpdate});
} else if (e.target.name == "add100_mc") {
Tweener.addTween(myLine, {width:myScore+100, time:0.6, onUpdate:showMyUpdate, onComplete:completedMyUpdate});
} else {
trace("none of the ones above");
}

}

//mens baren vokser skrives den pixel-længde ud i tekstfeltet myCounter
function showMyUpdate():void {
//trace("function showMyUpdate");
myCounter.text = String(Math.round(myLine.width)) + " px";
}

//slutteligt, hvis baren vokser sig større end 550 px, vokser den automatisk tilbage til 1 px
function completedMyUpdate():void {
myScore = myLine.width;
if (myScore > 550){
Tweener.addTween(myLine, {width:1, time:0.6, onUpdate:showMyUpdate});
myScore = 1;
}
}

Tweener er fantastisk - tak til Zeh Fernando for at have udviklet det og tak til Ernesto Quezada for at gøre opmærksom på dette parameter...

(farverne i flash'en er tilhørende cherry cheesecake-farveskemaet i adobe's kuler)

Vær den første til at give point

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

Relaterede indlæg

Tilføj kommentar


 

  Country flag

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]



Live preview

09-09-2010 13:05:16

Powered by BlogEngine.NET 1.3.1.0
Theme by Mads Kristensen (Modifed by Co3)


Om mig

Felix Sanchez Felix Sanchez
Flashin’ about

Send mig en mail Send mail

Kategorier

None

Seneste kommentarer