Autor |
Nachricht |
Christophg
Threadersteller
Dabei seit: 14.09.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst So 14.09.2008 19:40
Titel Problem mit gedrückter Taste in AS3 |
|
|
Hallo!
Ich habe folgendes vor:
Ich möchte ein Spiel machen, wo ich eine Person mit den Pfeiltasten bewegen kann. Zur Zeit sieht das so aus:
Code: | stage.addEventListener(KeyboardEvent.KEY_DOWN, PressedKey);
function PressedKey(event:KeyboardEvent):void{
var o:Object = getObjectByLoader(ICH);
switch(event.keyCode){
//Links
case 37:
moveSWF("links", o);
break;
//Oben
case 38:
moveSWF("oben", o);
break;
//Rechts
case 39:
moveSWF("rechts", o);
break;
//Unten
case 40:
moveSWF("unten", o);
break;
}
} |
Das funcktioniert auch alles, nur möchte ich, dass auch bei gedrückter Pfeiltaste sich die Figur SOFORT bewegt. Also da ist immer diese Verzögerung drin, sobal ich eine taste drücke. Die Figur bewegt sich und dann muss ich einen Moment warten, bis sich die Figur flüssig bewegt. Kann man das irgendwie machen, dass er standartmäßig so reagiert, dass sie sofort als gedrückt erkannt wird?
Es liegt nicht daran, dass es erst evtl kurz bearbeitet werden muss, denn es ist ja eigentlich ganz normal (zum Beispiel in einem Textdokument), wenn man die Pfeiltaste drückt, dass es einen moment dauert, bis er direkt flüssig die einzelnen Tasteb beim Cursor "durchläuft".
Ich hoffe ihr versteht mein Problem und ich freue mich über die Antworten.
|
|
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst So 14.09.2008 20:22
Titel
|
|
|
Was machen denn die anderen Methoden ?
Denn eigentlich reagiert der Listener ohne Verzögerung.
Nichtsdestotrotz, versuch doch mal, die "PressedKey"-Methode einfach bei EnterFrame zu feuern, mach den switch auf eine Variable die bei KeyDown zugewiesen und bei KeyUp null gesetzt wird.
|
|
|
|
|
Anzeige
|
|
|
l'Audiophile
Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht:
|
Verfasst So 14.09.2008 21:33
Titel
|
|
|
Das Kabel der Tastatur auf ca. einen halben Meter Länge kürzen, dann müsste es funktionieren.
|
|
|
|
|
Janoe
Dabei seit: 08.03.2008
Ort: Hamburg
Alter: 32
Geschlecht:
|
Verfasst So 14.09.2008 21:34
Titel
|
|
|
pejot hat geschrieben: | Das Kabel der Tastatur auf ca. einen halben Meter Länge kürzen, dann müsste es funktionieren. |
|
|
|
|
|
l'Audiophile
Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht:
|
Verfasst So 14.09.2008 21:39
Titel
|
|
|
Account for sale hat geschrieben: | pejot hat geschrieben: | Das Kabel der Tastatur auf ca. einen halben Meter Länge kürzen, dann müsste es funktionieren. |
|
Was? Besseren Vorschlag?
Ein-Smileyposts sind hier übrigens nicht erwünscht.
|
|
|
|
|
Christophg
Threadersteller
Dabei seit: 14.09.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst So 14.09.2008 22:53
Titel
|
|
|
Nein, reagieren tut er ja. auch direkt. Ihr könnt es ja selbst mal ausprobieren, anstatt das moveSWF("oben", o); mal trace("xyz"); zu machen. Dann schreibt er ja auch nur ganz kurz einmal "xyz" hin, wartet einen kleinen Moment und erst dann in ganz schnellen Abständen.
Zitat: | Nichtsdestotrotz, versuch doch mal, die "PressedKey"-Methode einfach bei EnterFrame zu feuern, mach den switch auf eine Variable die bei KeyDown zugewiesen und bei KeyUp null gesetzt wird. |
.. Ich will die Funktion doch nicht nur bei OnEnterFrame machen, sonder immer wenn die Taste gedrückt wurde...
|
|
|
|
|
l'Audiophile
Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht:
|
Verfasst So 14.09.2008 22:57
Titel
|
|
|
Christophg hat geschrieben: | Nein, reagieren tut er ja. auch direkt. Ihr könnt es ja selbst mal ausprobieren, anstatt das moveSWF("oben", o); mal trace("xyz"); zu machen. Dann schreibt er ja auch nur ganz kurz einmal "xyz" hin, wartet einen kleinen Moment und erst dann in ganz schnellen Abständen.
Zitat: | Nichtsdestotrotz, versuch doch mal, die "PressedKey"-Methode einfach bei EnterFrame zu feuern, mach den switch auf eine Variable die bei KeyDown zugewiesen und bei KeyUp null gesetzt wird. |
.. Ich will die Funktion doch nicht nur bei OnEnterFrame machen, sonder immer wenn die Taste gedrückt wurde... |
Ja und deswegen darfst du deine Methoden nicht abhängig von der Framerate machen.
|
|
|
|
|
Christophg
Threadersteller
Dabei seit: 14.09.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst So 14.09.2008 23:02
Titel
|
|
|
pejot hat geschrieben: | Christophg hat geschrieben: | Nein, reagieren tut er ja. auch direkt. Ihr könnt es ja selbst mal ausprobieren, anstatt das moveSWF("oben", o); mal trace("xyz"); zu machen. Dann schreibt er ja auch nur ganz kurz einmal "xyz" hin, wartet einen kleinen Moment und erst dann in ganz schnellen Abständen.
Zitat: | Nichtsdestotrotz, versuch doch mal, die "PressedKey"-Methode einfach bei EnterFrame zu feuern, mach den switch auf eine Variable die bei KeyDown zugewiesen und bei KeyUp null gesetzt wird. |
.. Ich will die Funktion doch nicht nur bei OnEnterFrame machen, sonder immer wenn die Taste gedrückt wurde... |
Ja und deswegen darfst du deine Methoden nicht abhängig von der Framerate machen. |
Die Framerate von dem SWF? Ich mache da doch gar nichts damit. Oder was meint ihr`? Könnt ihr mir ein direktes Beispiel einmal geben?
|
|
|
|
|
|
|
|
Ähnliche Themen |
Problem mit Umschalt-Taste und Input-Feld
PS: Wekzeugspitze per ctr+alt Taste…
TAB-Taste auf Flash-seite
Rückgängig-Taste in Indesign CS3?
Powerpoint - Effekt auf bestimmte Taste?
Alt taste aktiviert menüleiste ILLUSTRATOR CS5
|
|