{lang: 'de'}
Flashhilfe.de - Flash Community

KeyboardEvent an Textfeld senden [Flash 10]

 


AntwortenRegistrieren Seite1  

EzioDiAuditore#1
Benutzerbild von EzioDiAuditore
Beiträge: 3
Registriert: Sep 2011

11.09.2011, 12:59

Hallo,

ich möchte/muss eine Art Bildschirmtastatur in Flash hinbekommen, die mit einem Textfeld interagiert.

Bei Buchstaben klappt das ganz gut, wenn ich die entsprechenden CLICK-Events nutze, um Buchstaben an den bestehenden Text anzuhängen.

Jetzt soll das Ding aber auch den Cursor nach links oder rechts bewegen können. Mein Ansatz: Ein entsprechendes KeyboardEvent generieren und an das TextFeld schicken. Aber irgendwie will das nicht. Mein Code:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// [...] team_txt gibt's schon und läuft auch
team_txt.type = TextFieldType.INPUT;
team_txt.selectable = true;
team_txt.text = "SPIELER 1";
team_txt.setSelection(0,team_txt.getLineLength(0));
stage.focus = team_txt;

// [...] die funktion wird vom entsprechenden Button gefeuert
function goLeft(){
     var evt:KeyboardEvent = new KeyboardEvent(KeyboardEvent.KEY_DOWN);
     evt.keyCode = Keyboard.LEFT;
     evt.updateAfterEvent();
     team_txt.dispatchEvent(evt);
     stage.focus = team_txt;
}


Und es passiert? Nicht :-/ Muss ich ein anderes Event senden? Erstelle ich es falsch? Der Cursor bleibt ungestört da, wo er war. Das Komische:
Sende lasse ich mir das entsprechende Event erzeugt mit der Tasta anzeigen, ist das:
ActionScript:
1[KeyboardEvent type="keyDown" bubbles=true cancelable=false eventPhase=3 charCode=0 keyCode=37 keyLocation=0 ctrlKey=false altKey=false shiftKey=false]


Mein erzeugtes Event:
ActionScript:
1[KeyboardEvent type="keyDown" bubbles=true cancelable=false eventPhase=3 charCode=0 keyCode=37 keyLocation=0 ctrlKey=false altKey=false shiftKey=false]
Also quasi das gleiche und das target ist auch bei beiden team_txt...
RustyCake#2
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

11.09.2011, 16:34