Erfassung von Cmd-C (oder Strg-C) Tastatur-Ereignis von modular Flex-Anwendung im browser oder in der LUFT

Es scheint, dass es unmöglich ist zu erfassen, mit dem Tastatur-Ereignis in der Regel verwendet für kopieren wenn Sie eine Flex-Anwendung im browser oder als eine AIR-app, vermutlich, weil der browser oder das OS ist abfangen.

Gibt es eine Möglichkeit zu sagen, der browser oder OS zu lassen, die Veranstaltung durch?

Beispielsweise in einem AdvancedDataGrid-ich habe den keyUp-event zu handleCaseListKeyUp(event), welche Anrufe die folgende Funktion:

        private function handleCaseListKeyUp(event:KeyboardEvent):void
        {
            var char:String = String.fromCharCode(event.charCode).toUpperCase();

            if (event.ctrlKey && char == "C")
            {
                trace("Ctrl-C");
                copyCasesToClipboard();
                return;
            }

            if (!event.ctrlKey && char == "C")
            {
                trace("C");
                copyCasesToClipboard();
                return;
            }

            //Didn't match event to capture, just drop out.
            trace("charCode: " + event.charCode);
            trace("char: " + char);
            trace("keyCode: " + event.keyCode);
            trace("ctrlKey: " + event.ctrlKey);
            trace("altKey: " + event.altKey);
            trace("shiftKey: " + event.shiftKey);
        }

Beim laufen, ich kann nie die Veröffentlichung der "C" - Taste, während Sie auch durch drücken der command-Taste (die sich zeigt, wie KeyboardEvent.ctrlKey). Ich bekomme die folgende trace-Ergebnisse:

charCode: 0
char: 
keyCode: 17
ctrlKey: false
altKey: false
shiftKey: false

Wie Sie sehen können, ist die einzige Veranstaltung, die ich erfassen kann, ist der release der command-Taste, die Freigabe der Taste "C" gedrückt halten, während Sie die command-Taste ist auch gar nicht gesendet.

Hat jemand erfolgreich umgesetzt standard kopieren und einfügen handling der Tastatur?

Bin ich bestimmt einfach nur die "C" - Taste auf eigenen (wie im code-Beispiel) oder machen Sie eine Kopie-Taste zur Verfügung?

Oder muss ich die erstellen Sie den listener manuell auf einer höheren Ebene, und übergeben Sie den Fall nach unten in mein modulare Anwendung ist Mut?

InformationsquelleAutor ianmjones | 2008-08-28

Schreibe einen Kommentar