Sie möchten eine benutzerdefinierte Schaltflächenkomponente erstellen und den keyDownHandler überschreiben. Wenn Sie jedoch die Schaltfläche (n) auswählen möchten, die gestoppt werden sollen, müssen Sie dem Code eine Bedingung hinzufügen. Dies ist, was es sollte wie folgt aussehen:
package Sandbox
{
import mx.controls.Button;
import flash.events.KeyboardEvent;
public class KeyButton extends Button
{
public function KeyButton()
{
super();
}
protected override function keyDownHandler(e : KeyboardEvent) : void {
if (e.keyCode == 32) { // Spacebar
return;
}
else if (e.keyCode == 67) { // Letter C
this.parentApplication.setStyle ("backgroundColor", "#00aa00");
}
super.keyDownHandler (e);
}
}
}
Der Vorteil hierbei ist, dass andere Schlüssel wird immer noch funktionieren, wie eingeben, oder können Sie mehr conditionals für verschiedene Schlüssel hinzufügen, wenn, sagen wir, Sie die Farbe ändern wollte die Taste, wenn Sie C oder was auch immer gedrückt haben.
Und während wir dabei sind, gibt es einen Unterschied zwischen KeyboardEvent.keyCode und CharCode. keyCode ist die ID des Schlüssels auf der physischen Tastatur, was bedeutet, dass Kleinbuchstaben c und Großbuchstaben C gleich sind (keyCode == 67). charCode hingegen ist die Adresse des Zeichens in der ASCII-Tabelle, also sind c und C verschieden (C ist 67, während c 99 ist). keyCode unterscheidet nicht zwischen Groß- und Kleinschreibung.
Oh, ja. Und sollten Sie die Schlüssel- und Zeichencodes eines Schlüssels (einschließlich willkürlicher wie Backspace) überprüfen müssen, lesen Sie diese page die guten Leute bei Adobe gemacht.
Ich machte auch eine application, um dies zu veranschaulichen. Es ist ein Standard-Flex Builder-Projekt, aber die Quelle befindet sich im Ordner "Src", wenn Sie es nicht haben. Starten Sie die Anwendung und klicken Sie auf die Schaltfläche, um sie zu fokussieren. Über dem Button sollte ein kurzer Text angezeigt werden. Während Sie den Fokus haben, drücken Sie die Leertaste, die das Click-Ereignis auslösen und mehr Text drucken soll, aber nichts passiert! Drücken Sie nun die Taste c, um die Hintergrundfarbe der Anwendung zu ändern. Ordentlich, wie?
Sie können die Quelle here finden.