Eine Stoppuhr in Flash zu basteln ist ganz einfach. Wir brauchen dazu:
- ein dynamisches Textfeld mit dem Variablennamen "zeit"
- zwei Buttons, einen zum starten und einen zum stoppen
- und einen leeren "controller"-movieclip, der das Hauptscript trägt.
1.das Textfeld
Ziehe ein Textfeld in der Hauptzeitleiste, also direkt im Film auf, das in den Fextoptionen (flash5) bzw. in den Eigenschaften (flashmx) auf dynamisch gestellt wird. in den gleichen Paletten erhält der Fext auch den Variablennamen "zeit".
2.die Buttons
Auch diese liegen auf der Hauptzeitleiste.
auf dem Startbutton
PHP:
on(release){
stoppen = true;//startet den stoppvorgang
startzeit = getTimer();//definiert die beginnzeit
}
und auf dem Stopp-button
PHP:
on(release){
stoppen = false;
}
3. der Controller-movieclip
Nun kommt das Herzstück - ein leerer Movieclip als "controller", ebenfalls auf der Hauptzeitleiste platziert und mit diesem Script AUF dem Movieclip
PHP:
onClipEvent(enterFrame){
//wenn die stoppvorgang läuft
if(_root.stoppen){
//zeit vom start in millisekunden
laufzeit = getTimer()-_root.startzeit;
//ausrechnen der "rest"millisekunden über "modulo" -> %
//also der restwert von millisekunden/1000
millisekunden = laufzeit%1000;
//gesamte laufzeit abzüglich der restmillisekunden/1000
sekundengesamt = (laufzeit -millisekunden)/1000;
//ausrechnen der restsekunden über modulo wie oben
sekunden = sekundengesamt%60;
//laufzeit abzüglich der sekunden
//(millisekunden sind hier ja schon raus)/60
minuten = (sekundengesamt - sekunden)/60;
//ausgabe
//millisekunden auf zwei stellen runden
millisekunden = math.round(millisekunden/10);
//"0" hinzufügen, falls sekunden oder minuten
//nur einstellig sind
if(sekunden<10){
sekunden = "0"+sekunden;
}
if(minuten<10){
minuten="0"+minuten;
}
//zusammensetzen der ausgabe für das textfeld "zeit"
//auf der hauptzeitleiste
_root.zeit = minuten+":"+sekunden+":"+millisekunden;
}
}
Film testen und auf den Startbutton klicken.
Dann habt ihr eure Stoppuhr! =)
Greets