Zurück   Flashforum > Flex und AIR > Flex allgemein

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-11-2011, 11:30   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2011
Beiträge: 5
Flash Vollbildmodus bei Fensterwechsel beenden

Hallo Flashforum,

ich wollte fragen, ob ihr eine Möglichkeit kennt den Vollbildmodus zu beenden, falls man während des Vollbildmodus auf ein anderes Fenster wechselt.

Beispiel für Windows:
- Vollbildmodus starten
- Alt+Tab

Das Vollbildfenster ist noch geöffnet. Falls man nun in den Browser wechselt reagiert das Flash so lange nicht, bis der Vollbildmodus wieder beendet wird.

ALT+Tab (oder Apfel-Tab, etc.) kann man leider nicht abfangen.

Ich habe in folgendem EventListener:
stage.addEventListener(Event.FULLSCREEN, displayStateChanged);
folgenden EventListener erstellt:
stage.addEventListener(FocusEvent.FOCUS_OUT, fullScreenFocusListener);
Da ich dachte, dass ich bei FOCUS_OUT den Vollbildmodus beenden kann - dieser Event wird aber direkt beim Öffnen des Vollbildmodus getriggert.

Habt ihr eine Idee wie man das Problem lösen kann?

Geändert von rmacnell (21-11-2011 um 12:18 Uhr)
rmacnell ist offline   Mit Zitat antworten
Alt 21-11-2011, 14:25   #2 (permalink)
Neuer User
 
Registriert seit: Nov 2011
Beiträge: 5
Hier ein zweiter Ansatz, der leider auch nicht erfolgreich war:

Wenn in den Vollbildmodus gewechselt wird erzeuge ich einen EventListener auf FOCUS_IN. Wenn FOCUS_IN getriggert wird erzeuge ich einen EventListener auf FOCUS_OUT. Leider wird FOCUS_OUT nicht getriggert wenn ich ALT+TAB drücke.
Hier ein bisschen Code:

PHP-Code:
private function toggleFullscreen():void
{
  if( 
stage.displayState == StageDisplayState.FULL_SCREEN )
  {
    
trace("changing displayState to NORMAL");
    
stage.displayState StageDisplayState.NORMAL;
  }
  else
  {
    
trace("changing displayState to FULLSCREEN");
    
stage.displayState StageDisplayState.FULL_SCREEN;
    
stage.addEventListener(FocusEvent.FOCUS_INfsFocusIn);  
  }
}

private function 
fsFocusIn(evt:FocusEvent):void{
  
trace("focus in");
  
stage.removeEventListener(FocusEvent.FOCUS_INfsFocusIn);
  
stage.addEventListener(FocusEvent.FOCUS_OUTfsFocusOut);
}

private function 
fsFocusOut(evt:FocusEvent):void{
  
trace("focus out");
  
stage.removeEventListener(FocusEvent.FOCUS_OUTfsFocusOut);
  
toggleFullscreen();

rmacnell ist offline   Mit Zitat antworten
Alt 22-11-2011, 11:29   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2011
Beiträge: 5
Ich habe es jetzt erstmal mit Javascript gelöst - diese dient aber leider nur als Workaround, da ich eine Lösung in ActionScript bauen muss.

Via Javascript fange ich den Event focus von window ab und rufe dann die Funktion closeFullscreen auf.
Hier bei Interesse der Code.

HTML:
PHP-Code:
                <script type="text/javascript" src="jquery-1.6.4.min.js"></script>
                <script type="text/javascript">
                        jQuery(function(){
                                jQuery(window).bind("focus",onFocus);
                        });
                        function onFocus(e){
                                checkFlashFullscreen();
                        }
                        function getFlash(name){
                                if (window.document[name]){
                                        return window.document[name];
                                }
                                if (navigator.appName.indexOf("Microsoft Internet")==-1){
                                        if (document.embeds && document.embeds[name]){
                                                return document.embeds[name]; 
                                        }
                                        else{
                                                return document.getElementById(name);
                                        }
                                }
                        }
                        function checkFlashFullscreen(){
                                VAR Flash = getFlash("theFlash");
                                if(flash.closeFullscreen){
                                        flash.closeFullscreen();
                                }
                        }
                </script> 
Flash:
PHP-Code:
private function checkCloseFullscreen():void{
  if(
stage.displayState == StageDisplayState.FULL_SCREEN){
    
stage.displayState StageDisplayState.NORMAL;
  }
}

private function 
init():void{
  
ExternalInterface.addCallback("closeFullscreen",checkCloseFullscreen);


Geändert von rmacnell (22-11-2011 um 11:46 Uhr)
rmacnell ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Datagrid itemEditor nach Tab/Fensterwechsel wieder aktiv Herr Lehmann Flex programmieren 7 05-01-2011 14:18
flash vollbildmodus chanel Flash 8 7 14-08-2010 16:32
[Flash 8] Drücken sie die ESC-Taste um dem Vollbildmodus zu beenden francwalter Flash Einsteiger 8 11-04-2010 10:10
Tastenkombination für Fensterwechsel muttchen Flash MX 2 05-02-2003 16:49
flash vollbildmodus juppo Flash 4 und Flash 5 2 24-10-2002 11:14


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele