| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Nov 2006
Beiträge: 23
| Countdown bei gedrückter Taste
Hallo Zusammen, ich versuche einen Zahnputztimer in Flash zu basteln und brauche dazu einen Countdown-Timer, der 3 Minuten herunterzählt, aber nur, wenn eine Taste gedrückt wird. Wenn ich die Taste loslasse, soll der Countdown unterbrochen werden und wenn ich wieder drücke soll er an der Stelle weiterzählen, wo er vorher aufgehört hat. Ich hab mich nach diesem Tutorial gerichtet: Countdown Timer for Flash Games (AS2) — Flash Tutorials, Flash Templates, Flash Games, Flash Casino Games - and blog! Und dann hab ich da noch ein onKeyDown = function() rangebastelt, damit das ganze bei Knopfdruck abspielt. Der Countdown funktioniert auch soweit, allerdings ignoriert er das 3 Minuten Intervall, das gesetzt wurde und zählt stattdessen für jeden Knopfdruck einen runter. Hier ist mein Code: Code: timer = 180;
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
if (Key.getCode() == Key.ENTER) {
trace ("Virtual key code: "+Key.getCode()+" (ENTER key)");
timer--;
if(timer==0){
clearInterval(countdownInterval);
}else {
trace("Virtual key code: "+Key.getCode());
}
}
}
countdownInterval = setInterval(countdown,3000);
Key.addListener(keyListener); vG Cörv |
| | |
| | #2 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
Am Computer Zähne putzen, wer das mag ![]() PHP-Code:
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Oct 2007 Ort: Kölle
Beiträge: 1.231
|
Hi, nur am Rande| in AS3 ist das etwas komfortabler: PHP-Code:
__________________ Die Hoffnung stirbt zuletzt. Aber sie stirbt. |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Nov 2006
Beiträge: 23
|
Cool, denn hab ich jetzt ja sogar zwei Varianten zum Ausprobieren. Leider sind meine AS3 Kenntnisse noch bescheidener, als meine AS2 Künste (praktisch nicht vorhanden ), deswegen muss ich mal schauen, ob ich damit klar komme. Aber vielen Dank. Ist auf jeden Fall super Input. |
| | |
| | #6 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
Hab das vom Andre und mir mal zusammen gemixt ![]() PHP-Code:
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Nov 2006
Beiträge: 23
|
Ja, is denn jetzt schon Weihnachten? ![]() Ich bin platt, mit was für einem Eifer einem hier geholfen wird. Danke vielmals. Funzen alle Varianten übrigens super, wobei die AS3 Variante natürlich cooler ist, weil sie richtig in Minuten und Sekunden zählt, anstatt einfach nur von 180 abwärts. Allerdings muss ich meine nicht vorhandenen AS3 Kenntnisse mit in die Waagschaale werfen. Falls ich nochmal ne Funktion hinzufrickeln muss, dann funktioniert das wahrscheinlich eher in AS2, als in AS3. Mir ist zum Beispiel eingefallen, dass eine Reset-Taste gar nicht verkehrt wäre, die den Timer wieder an den Anfang setzt. Ich bin unterdessen noch dabei zu versuchen, die erste Variante zu verstehen. Soweit bin ich gekommen: Code: var countInterval:Number; var timer:Number = 179; var d:Number = 1000; timetext.text = "3:00"; Code: //-->
k_Down = {onKeyDown:function ()
{
if (Key.getCode() == Key.ENTER)
{
if(countdownInterval == undefined){
countdownInterval = setInterval(runTimer, d);
}
}
}};
Key.addListener(k_Down); Dann fragt er den Tasten-Code ab und sagt, wenn er gleich "ENTER" ist, dann setze das Intervall auf 3 Minuten fest, aber nur falls es vorher nicht schon festgesetzt wurde. D.h. sobald ich auf den Knopf gedrückt habe, ist countdownInterval nicht mehr undefined und er wird nicht auf 3 Minuten zurückgesetzt, sondern zählt dort weiter wo er aufgehört hat, wenn ich nochmal drücke. Ich versteh noch nicht ganz, wie er auf die 3 Minuten kommt. Ihm wird scheinbar die Variable d übergeben. d=1000, d.h. 1000=3 Minuten? Code: //-->
k_Up = {onKeyUp:function ()
{
if (Key.getCode() == Key.ENTER)
{
clearInterval(countdownInterval);
countdownInterval = undefined;
}
}};
Key.addListener(k_Up); Code: //-->
function runTimer():Void
{
if (timer > -1)
{
var t:Number = timer--;
var m:Number = Math.floor(t / 60);
var s:Number = t % 60;
s >= 10 ? timetext.text = m + ":" + s : timetext.text = m + ":0" + s;
}
} |
| | |
| | #8 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
SetInterval wird in Millisekunden Initialisiert, also ist 1000 eine Sekunde, das bedeutet das der Interval, jede Sekunde ausgeführt wird ;-)
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Oct 2007 Ort: Kölle
Beiträge: 1.231
|
Wenn das der einzige Part deiner Anwendung ist, versuche doch gleich den AS3-Ansatz zu verstehen - das bringt Dich auf längere Sicht einfach weiter... Reset-Taste | AS3 PHP-Code: PHP-Code:
__________________ Die Hoffnung stirbt zuletzt. Aber sie stirbt. |
| | |
| | #10 (permalink) |
| Neuer User Registriert seit: Nov 2006
Beiträge: 23
| ![]() Der Zahnputztimer ist fertig (zumindest der Flashteil ). Danke euch beiden nochmal vielmals. @ andrelehnert: Danke auch für den Reset-Button. Ich hab die SWF als Anhang mal hochgeladen, damit ihr schauen könnt, was wir gemeinsam fabriziert haben. Es ist doch die AS2 Variante geworden. Sorry . Aber ich habs in der Kürze der Zeit einfach nicht mehr gerafft.Ihr wisst ja, Enter drücken und er legt los und Enter loslassen und er stoppt. Mit Space könnt ihr den Timer zurücksetzen. Außerdem gibts noch ein Easteregg (Spoiler: wenn man auf die Nase klickt). Ich hoffe euch gefällts. |
| | |
| | #11 (permalink) |
| Neuer User Registriert seit: Oct 2007 Ort: Kölle
Beiträge: 1.231
|
Sehr süß - keine Ursache. Am Anfang - nach ca.1 Sekunde springt die Uhr nochmal kurz auf Null zurück, um dann richtig durchzulaufen - ist das Absicht oder noch ein kleiner Fehler? LG ANdré
__________________ Die Hoffnung stirbt zuletzt. Aber sie stirbt. |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Flash CS4] scroll bei gedrückter maustaste | derfrederik | Flash Einsteiger | 6 | 23-04-2010 12:49 |
| Scrollen bei gedrückter Taste | krisox | Flash Einsteiger | 3 | 05-02-2007 08:35 |
| Scrollen bei gedrückter Taste | krisox | Flash MX 2004 | 1 | 04-02-2007 12:05 |
| onKeyDown bei gedrückter Taste nur einmal ausführen | -Panda- | Flash MX 2004 | 2 | 15-06-2005 10:44 |
| scrollen mit gedrückter maustaste?!?! | goldenice | Flash MX | 3 | 06-07-2004 12:49 |