Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-12-2007, 13:06   #1 (permalink)
Neuer User
 
Registriert seit: May 2002
Ort: mitten in Köln
Beiträge: 79
KeyboardEvent.KEY_DOWN ohne dauerfeuer

grüßt euch again,

wie kann ich verhindern, dass bei folgendem event die function "onKeyDown" andauernd aufgerufen wird.

stage.addEventListener ( KeyboardEvent.KEY_DOWN, onKeyDown );

ich möchte, dass onKeyDown einmal aufgerufen wird - quasi ohne dauerfeuer.
__________________
$ braindump -l german /dev/voice > erstDenkenDannReden
VIR²L ist offline   Mit Zitat antworten
Alt 05-12-2007, 13:08   #2 (permalink)
undefined
 
Benutzerbild von mildesign
 
Registriert seit: Jul 2001
Ort: Stuttgart
Beiträge: 1.839
Setzt noch einen Listener auf Key UP und verwende eine Variable als Schalter
__________________
mfg Frank
mildesign ist offline   Mit Zitat antworten
Alt 05-12-2007, 13:10   #3 (permalink)
mushroom powered
 
Benutzerbild von b.asile
 
Registriert seit: Jun 2005
Ort: Amsterdam
Beiträge: 2.649
gerad3e auf die schnelle, so in der Art:

PHP-Code:
stage.addEventListener KeyboardEvent.KEY_DOWNonKeyDown );
stage.addEventListener KeyboardEvent.KEY_UPonKeyUp );

private function 
onKeyDownKeyboardEvent) : void
{
stage.removeEventListenerKeyboardEvent.KEY_DOWNonKeyDown );
doSomething();
}

private function 
onKeyUpKeyboardEvent) : void
{
stage.addEventListenerKeyboardEvent.KEY_DOWNonKeyDown );
doSomethingDifferent();

__________________
[ WHEN THE GOING GETS WEIRD THE WEIRD TURN PRO ]

devboy.org
b.asile ist offline   Mit Zitat antworten
Alt 05-12-2007, 13:10   #4 (permalink)
Neuer User
 
Registriert seit: May 2002
Ort: mitten in Köln
Beiträge: 79
ein KEY_UP hab ich - dennoch wird bei gedrückter taste das KEY_DOWN Event immer und immer wieder gefeuert.

gibt die tastatureinstellung halt so her.


@b.asile : yo der ist gut - den nehma
__________________
$ braindump -l german /dev/voice > erstDenkenDannReden

Geändert von VIR²L (05-12-2007 um 13:15 Uhr)
VIR²L ist offline   Mit Zitat antworten
Alt 05-12-2007, 17:00   #5 (permalink)
Neuer User
 
Registriert seit: May 2002
Ort: mitten in Köln
Beiträge: 79
ich nochmal...

problem bei der sache ist, dass immer alle events gelöscht werden.
ich drücke <pfeil-rechts> und möchte bei gedrückter taste <space> drücken können.

allerdings existiert kein listener, da er ja bei onKeyDown gelöscht wurde.
__________________
$ braindump -l german /dev/voice > erstDenkenDannReden
VIR²L ist offline   Mit Zitat antworten
Alt 05-12-2007, 17:07   #6 (permalink)
mushroom powered
 
Benutzerbild von b.asile
 
Registriert seit: Jun 2005
Ort: Amsterdam
Beiträge: 2.649
Zitat:
Zitat von VIR²L Beitrag anzeigen
ich nochmal...

problem bei der sache ist, dass immer alle events gelöscht werden.
ich drücke <pfeil-rechts> und möchte bei gedrückter taste <space> drücken können.

allerdings existiert kein listener, da er ja bei onKeyDown gelöscht wurde.
Dafür wird/ sollte der bei onKeyUp ja wieder geaddet werden.
hmmm....
__________________
[ WHEN THE GOING GETS WEIRD THE WEIRD TURN PRO ]

devboy.org
b.asile ist offline   Mit Zitat antworten
Alt 05-12-2007, 17:14   #7 (permalink)
Neuer User
 
Registriert seit: May 2002
Ort: mitten in Köln
Beiträge: 79
ja aber... wenn ich aber KEY_UP noch nicht ausgelöst habe ?
vielleicht erklär ich es mal anders

ein "männchen" wird mit den pfeil-tasten (links und rechts) gesteuert.
mit <space> wird gesprungen

ich drücke nach rechts und halte gedrückt ( das männchen rennt )
jetzt soll aus dem laufen gesprungen werden - also <space> einmal gedrückt und wieder losgelassen.

...

you see - space wird er nicht erkennen, da ich zu diesem zeitpunkt noch im KEY_DOWN feststecke

in den key_down_handler kann ich es auch nicht wieder adden, denn dann triggert er immer und immer wieder - so wie ganz zu beginn auch
__________________
$ braindump -l german /dev/voice > erstDenkenDannReden
VIR²L ist offline   Mit Zitat antworten
Alt 05-12-2007, 17:32   #8 (permalink)
mushroom powered
 
Benutzerbild von b.asile
 
Registriert seit: Jun 2005
Ort: Amsterdam
Beiträge: 2.649
In dem Fall musst du ganz anders an die Problematik herangehen,
du willst ja das das DOWN Event für nach rechts laufen dauernd gefeuert wird, damit deine figur durchgehend läuft.

Wenn man space drückt, dann frage doch ganz einfach ab die figur schon wieder gelandet ist, ansonsten lässt du sie halt nicht springen
__________________
[ WHEN THE GOING GETS WEIRD THE WEIRD TURN PRO ]

devboy.org
b.asile ist offline   Mit Zitat antworten
Alt 05-12-2007, 18:03   #9 (permalink)
Neuer User
 
Registriert seit: May 2002
Ort: mitten in Köln
Beiträge: 79
oder aber, ich bastel mir ne klasse in denen die events von anfang an gesplittet werden. meinst du das wäre von erfolg gekrönt.

habe mal einen blick in diese klassen geworfen:
PHP-Code:
flash.ui.Keyboard
flash
.ui.KeyLocation 
meinste daraus in verbindung mit ner neuen klasse
PHP-Code:
public class KeyboardControls extends KeyboardEvent 
kann man was basteln ??
__________________
$ braindump -l german /dev/voice > erstDenkenDannReden
VIR²L ist offline   Mit Zitat antworten
Alt 05-12-2007, 18:17   #10 (permalink)
mushroom powered
 
Benutzerbild von b.asile
 
Registriert seit: Jun 2005
Ort: Amsterdam
Beiträge: 2.649
1. Wozu ein neues Event schreiben??
2. Kannst du von KeyboardEvent nicht erben, weil das ja schon von Event erbt.
3. Wenn du dir die KeyboardEvent klasse angesehen hast dann ist dir doch bestimmt die Getter Function KeyCode ins auge gestochen, oder?

PHP-Code:
private function onKeyDownke KeyboardEvent) : void
{
    
traceke.keyCode );

__________________
[ WHEN THE GOING GETS WEIRD THE WEIRD TURN PRO ]

devboy.org
b.asile ist offline   Mit Zitat antworten
Alt 05-12-2007, 18:27   #11 (permalink)
Neuer User
 
Registriert seit: May 2002
Ort: mitten in Köln
Beiträge: 79
ja - is sie und die setze ich auch ein

in meiner onKeyDown mache ich ein switch auf den keyCode, um in die jeweilige funktion zu switchen.
__________________
$ braindump -l german /dev/voice > erstDenkenDannReden
VIR²L ist offline   Mit Zitat antworten
Alt 05-12-2007, 18:40   #12 (permalink)
mushroom powered
 
Benutzerbild von b.asile
 
Registriert seit: Jun 2005
Ort: Amsterdam
Beiträge: 2.649
Zitat:
Zitat von VIR²L Beitrag anzeigen
ja - is sie und die setze ich auch ein

in meiner onKeyDown mache ich ein switch auf den keyCode, um in die jeweilige funktion zu switchen.
ja und wo ist jetzt das problem?
die sache ob deine figur nun springen darf oder nicht ist nun eigentlich keine sache die man über removeListener lösen kann.
das musst du intern in deiner figur klasse oder sonstwo lösen.
__________________
[ WHEN THE GOING GETS WEIRD THE WEIRD TURN PRO ]

devboy.org
b.asile ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 11:51 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele