ich versuche herauszufinden, Zustand und für "Verknüpfung" zum Beenden von Standalone-App von Flash. Ich möchte 2 Tasten drücken und Kombination dieser beiden Tasten "C + M" sollte meine App beenden. Heres mein Code, aber es funktioniert immer noch nicht. Ich habe versucht, sicherzustellen, dass die App mir erlaubt, mehrere Tasten gleichzeitig zu drücken, und danach habe ich die Funktion zum Beenden erstellt. Alle Antworten sind großartig.EventListener für Tastenkombinationen in AS3?
var keyPressedC:Boolean;
var keyPressedM:Boolean;
addEventListener(KeyboardEvent.KEY_DOWN, check_key_down,false,0,true);
addEventListener(KeyboardEvent.KEY_UP, check_key_up,false,0,true);
addEventListener(Event.ENTER_FRAME, check_keys,false,0,true);
function check_keys(event:Event):void
{
if(keyPressedC)
trace("pushed C")
if(keyPressedM)
trace("pushed M")
}
function check_key_down(event:KeyboardEvent):void
{
if(event.keyCode == 67)
keyPressedC = true;
if(event.keyCode == 77)
keyPressedM = true;
}
function check_key_up(event:KeyboardEvent):void
{
if(event.keyCode == 67)
keyPressedC = false;
if(event.keyCode == 77)
keyPressedM = false;
}
import flash.system.fscommand;
stage.addEventListener(KeyboardEvent.KEY_DOWN, enterKeyHandlercm);
function enterKeyHandlercm(event:KeyboardEvent):void
{
\t if (event.keyCode == Keyboard.C && event.keyCode == Keyboard.M)
\t {
\t \t fscommand("quit");
\t }
}
Herausgegeben, immer noch nicht funktioniert:
var keyPressedC:Boolean;
var keyPressedM:Boolean;
addEventListener(KeyboardEvent.KEY_DOWN, check_key_down,false,0,true);
addEventListener(KeyboardEvent.KEY_UP, check_key_up,false,0,true);
addEventListener(Event.ENTER_FRAME, check_keys,false,0,true);
function check_keys(event:Event):void
{
if(keyPressedC)
trace("pushed C")
if(keyPressedM)
trace("pushed M")
}
function check_key_down(event:KeyboardEvent):void
{
if(event.keyCode == 67)
keyPressedC = true;
if(event.keyCode == 77)
keyPressedM = true;
}
function check_key_up(event:KeyboardEvent):void
{
if(event.keyCode == 67)
keyPressedC = false;
if(event.keyCode == 77)
keyPressedM = false;
}
import flash.system.fscommand;
stage.addEventListener(KeyboardEvent.KEY_DOWN, enterKeyHandlercm);
function enterKeyHandlercm(event:KeyboardEvent):void
{
\t if (keyPressedM == true && keyPressedC == true)
\t {
\t \t fscommand("quit");
\t }
}
Was funktioniert nicht? Erhalten Sie einen Fehler? –
Keine Fehler, aber erstens, ich bekomme keine Trace-Ausgaben "Pushed C" oder "M" und zweitens, Kombination von C + M nicht die App zu beenden. – TomT