Next Generation User Interfaces How-To: Tastatureingabe

Eine der gängigsten Interaktionsmöglichkeiten ist die Tastatureingabe. In einem kleinen Überblick möglicher Formen der Mensch-Maschine-Interaktion darf diese darum nicht fehlen. Zumal die Tastatureingabe für mehr als nur das Ausfüllen von Textfeldern dienen kann. Tastatureingaben sind beispielsweise zum Aufruf eines Kommandos nützlich, etwas für Spiele oder als Abkürzung für gängige Operationen in Programmen wie Apfel/Strg+Z zum Rückgängigmachen. Mehr dazu und weitere ungewöhnlichen Interaktiosmöglichketen mit der Tastatureingabe gibt es in einem späteren Text zum Thema “Komandozeile”.

focusVeränderungen an dem HTML-Rahmen müssen im Flex- oder Flash-Builder in der index.template.html-Datei vorgenommen werden. Die fertige HTML-Seite wird dann daraus generiert.

Doch auch bei der Tastatureingabe gibt es kleinere Gemeinheiten wie etwa den Fokus. Denn normalerweise erhält nur diejenige Anwendung mit dem aktuellen Fokus Kenntnis über einen Tastendruck (und auch nur dann, wenn der Browser diese Tastenkombination nicht vorbelegt hat und abfängt). Bei Webanwendungen kann man dies durch die folgende JavaScript-Anweisung erzwingen: document.getElementById(“FlashContentID“).focus(); Für Flex-Anwendungen kann diese Angabe beispielsweise in der index.template.html-Datei erfolgen, die als Vorlage für den erzeugten HTML-Rahmen und die darin dann eingebettete SWF-Datei dient. Dank dem Platzhalter ${application} lässt sich die Bezeichnung der Flash-Player-Instanz leicht ermitteln und dann zum Beispiel nach erfolgreichem Laden des HTML-Dokumentes der Fokus darauf setzen. Innerhalb von Flex gelingt das Setzen des Fokus wie in der Abbildung auf einem TextInput-Steuerelement durch die Methode setFocus – nur dass dieser Fokus abgesehen vom Erscheinungsbild leider nichts nützt, wenn eben der Flash Player selbst keinen Fokus hat.

flashkeyUm Tastatureingaben in Flash über das Menü „Steuerung -> Film testen“ ausprobieren zu können, sollten im Testplayer über das Menü „Steuerung“ Tastenkürzel deaktiviert werden.

In Flash und Flex mit ActionScript 3 benachrichtigt das Ereignis KeyboardEvent.KEY_DOWN beim Drücken bzw. KeyboardEvent.KEY_UP beim Loslassen einer Taste. Das funktioniert aber auch hier nur, wenn der Fokus gesetzt ist; In der Abbildung ist deshalb die Bühne (stage) als Objekt gewählt. Das Drücken wiederholt sich jedoch auch ohne zwischenzeitliches Loslassen wenn die Taste nur lange genug gedrückt bleibt (die Wiederholrate findet sich unter Windows 7 in der Systemsteuerung unter „Tastatur -> Geschwindigkeit“). Außerdem muss man unterscheiden, ob das eigegebene Zeichen (charCode) oder die gedrückte Taste (keyCode) auf der Tastatur wichtig ist, also ob auch die Großundkleinschreibung interessiert:

1
2
3
4
5
6
7
8
9
10
11
12
13
// Die notwendigen Klassen sind in Flash CS4 und CS5 automatisch bekannt.
// Im Flex/Flash Builder müssen die Klassen importiert werden.
 
// Abonniere Ereignis, um das Drücken der Tasten zu erfahren
stage.addEventListener(KeyboardEvent.KEY_DOWN, application_keyDownHandler);
 
// Ereignismethode, um das Drücken der Tasten zu verarbeiten
function application_keyDownHandler(event:KeyboardEvent):void {
	trace("Taste gedrückt/wiederholt");
	trace("Tastencode: " + event.keyCode);
	trace("Zeichencode: " + event.charCode);
	trace("Zeichen: " + String.fromCharCode(event.charCode));
}

image Barcode-Scanner wie hier der Symbol LS1203 machen sich übrigens meist auch die Tastatur zu nutze. Ein gescannter Barcode erscheint dann – angereichert um ein paar Steuerzeichen – als Tastatureingabe in der Anwendung. Barcode-Scanner sind somit oft nur eine benutzerfreundliche Variante der manuellen Eingabe: Der Zugbegleiter kann Tickets so schneller verarbeiten und der Schlosser muss seine Handschuhe nicht erst ausziehen.

One thought on “Next Generation User Interfaces How-To: Tastatureingabe

Comments are closed.