Hi Leute,
ich stehe am Rande der Verzweiflung. Zu dem Thema gibt es 1000 Beiträge, doch leider konnte ich in keinem Beitrag eine Lösung finden, die für mich funktioniert. Das Problem ist sicherlich dem ein oder anderen bekannt und ich hoffe jetzt jemand kennt auch eine Lösung.
Über einen Button setze ich meine Flash App in den FullScreen Modus. Ein EventHandler überwacht die ganze Sache und blendet entsprechend Objekte ein/aus. Dieser EventHandler reagiert aber nicht, wenn der User den FullScreenMode mit der ESCAPE Taste beendet
Meine Idee war nun einen KeyEvent auf die ESCAPE Taste zu legen, die den anderen Handler dann ersetzt. Leider funktioniert auch das nicht. Der Tastendruck der ESCAPE Taste wird einfach ignoriert
Im folgenden mein AS3 Code (auf das Wesentliche reduziert)
Code:
var fullScreen:Boolean;
/**
* Auf der Bühne befindet sich fullScreenButton, dieser wird hier mit dem Klick Event ausgerüstet
*/
fullScreenButton.addEventListener(MouseEvent.CLICK, fullScreenHandler);
/**
* Dieser Event wird beim Wechsel aus oder in den Vollbild Modus ausgeführt.
*/
stage.addEventListener(FullScreenEvent.FULL_SCREEN, resizeHandler);
/**
* Dieser Handler sollte das Problem mit der Escape Taste beheben, funktioniert aber leider nicht. Ein Fehler wird nicht angezeigt :(
*/
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyHandler);
function fullScreenHandler(e:MouseEvent):void{
if(stage.displayState == StageDisplayState.FULL_SCREEN){
fullScreen = false;
stage.displayState = StageDisplayState.NORMAL;
}
else {
fullScreen = true;
stage.displayState = StageDisplayState.FULL_SCREEN;
}
}
function resizeHandler(event:FullScreenEvent):void{
resizeMovie();
}
function keyHandler(keyEvent:KeyboardEvent){
if(fullScreen && keyEvent.keyCode==27){
resizeMovie();
}
}
function resizeMovie(){
//Hier stehen alle Anweisungen, die bei Resize ausgeführt werden sollen
}