| |||||||
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: Jul 2002
Beiträge: 28
| dauerdrücken einer taste verhindern
hi, ich steh total auf dem schlauch. Gibt es nicht eine ganz einfache Methode, das dauernde Gedrückthalten einer Taste zu verbieten, also dass der Spieler wenigstens mal die Taste loslossen muss, bevor sie reagiert? Auf dem Button liegt: ************** on (release, keyPress "<Space>") { gotoAndStop(1); } ************** keyUp "<Space>" gibt es ja nicht, oder? Hier soll ein Gewehr geladen werden. Im ersten Bild ist es voll, im vierten leer, und da kommt auch dieser Button vor. Also ich habe eine Schleife... Für jede Hilfe dankbar! grüße, anni |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Jul 2002
Beiträge: 28
|
Jetzt habe ich das versucht, im root im vierten Bild... geht aber auch nicht, hier tut sich gar nix. :-?? var keyListener:Object = new Object(); keyListener.onKeyUp = function() { // Rückgabewert von getCode() mit Konstante vergleichen if (Key.getCode() == Key.SPACE) { _root.eimer_sound.gotoAndPlay(2); gotoAndStop(1); } }; Key.addListener(keyListener); |
| | |
| | #3 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
benütze eine variable so kannst du z.b. abfragen, ob eine bestimmte zeit vergangen ist, oder ob's eine andere taste ist usw. du kannst auch funktionen ab- und anhängen: fPress=function() { delete this.onPress; // function abhängen } _btn.onPress=fPress; // function anhängen http://www.seibsprogrammladen.de/fra...ispiele/flash6 -> Spiele ... Schiessen: Der Buttler schiesst in der Wohnung herum
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Jul 2002
Beiträge: 28
|
Hi! Dankeschön, das sind ja tolle Beispiele auf deiner Seite. Ich habe es jetzt an deins angepasst, aber mein Problem besteht immer noch. Man kann einfach SPACE gedrückt halten während des ganzen Spiels, und wenn die Kanone sagt, man müsse laden, (was sie so sagt: patroneBitteLaden=true) dann lädt sie halt, ohne dass man dafür erst mal loslassen müsste. im root habe ich jetzt: pat.onEnterFrame=function(){ trace(patroneBitteLaden) if ((patroneBitteLaden) && (Key.isDown(Key.SPACE))) { eimer_sound.gotoAndPlay(2); pat.gotoAndStop(1); } } Und in „pat“ im vierten Bild, wenn die Kanone leer ist, (patroneBitteLaden=true) und im ersten, wenn sie voll ist (=false) Ich bräuchte so was wie Key.isUp... Noch eine Idee? anni |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Jul 2002
Beiträge: 28
|
Jetzt habe ich es so gemacht: pat.onEnterFrame=function(){ if((patroneBitteLaden) && (Key.isDown(Key.SPACE)) && (!k_down)) { k_down = true; } else { k_down = false; eimer_sound.gotoAndPlay(2); pat.gotoAndStop(1); trace("Taste los gelassen") } } ABER – jetzt lädt sie STÄNDIG, also immer wenn die SPACE-Taste NICHT gedrückt wird. Das isses nu auch nicht. |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Jul 2002
Beiträge: 28
|
Tja, ich schon wieder... ich hab’s! keyListener={}; keyListener.onKeyUp = function() { trace("up"); // Rückgabewert von getCode() mit Konstante vergleichen if ((patroneBitteLaden) && (Key.getCode() == Key.SPACE)) { trace("bereit") eimer_sound.gotoAndPlay(2); pat.gotoAndStop(1); } }; Key.addListener(keyListener); Ich hatte den Listener falsch eingebaut. |
| | |
| | #7 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
und schau dir mal listener an, das verbraucht nicht so viel rechenleistung wie dein onEnterFrame. [edit] aha, schon selbst entdeckt ;-) Code: patroneBitteLaden = true;
k_down = false;
_root.createEmptyMovieClip("pat", 1);
//
pat.onEnterFrame = function() {
if (patroneBitteLaden) {
if (Key.isDown(Key.SPACE) && !k_down) {
k_down = true;
trace("SPACE gedrückt");
// eimer_sound.gotoAndPlay(2);
// pat.gotoAndStop(1);
} else if (!Key.isDown(Key.SPACE) && k_down) {
k_down = false;
trace("SPACE losgelassen");
} } };
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (17-01-2007 um 13:13 Uhr) |
| | |
| | #9 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
was verstehst du nicht? habe deinen script gangbar gemacht. zum testen muss ich natürlich parameter setzen, die ich nicht habe aber gebraucht werden: patroneBitteLaden = true; k_down = false; _root.createEmptyMovieClip("pat", 1); und das was ich nicht habe und zum testen nicht gebraucht wird ist auskommentiert: // eimer_sound.gotoAndPlay(2); // pat.gotoAndStop(1); ist jetzt egal, du hast ja selbst eine andere lösung gefunden!
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |