Wraz z wydaniem Flash Player 9.0.28.0 istnieje możliwość ustawienia aplikacji w prawdziwym trybie pełnoekranowym. Można bez problemu przełączać się z trybu normalnego (w oknie przeglądarki) do trybu pełnego ekranu i odwrotnie. Powrót z trybu pełnoekranowego następuje po kliknięciu przycisku ESC lub odpowiedniego przycisku w aplikacji. Nie jest możliwe uruchomienie bezpośrednio apletu Flash w trybie pełnoekranowym, bez jakiejkolwiek ingerencji użytkownika.

Przykład: (kliknij niebieski prostokąt)


W języku ActionScript 3.0 za tryb wyświetlania odpowiada klasa StageDisplayState określająca, jakiego stanu wyświetlania należy użyć.
StageDisplayState.NORMAL - normalny tryb wyświetlania
StageDisplayState.FULL_SCREEN - pełnoekranowy tryb wyświetlania

Poniżej listing aplikacji przedstawionej powyżej.
Na scenie kładziemy instancję klasy MovieClip o nazwie "fsButton".

  1. stage.scaleMode = StageScaleMode.NO_SCALE;
  2. stage.align = StageAlign.TOP_LEFT;
  3.  
  4. fsButton.addEventListener(MouseEvent.CLICK, functionFullScreen);
  5. fsButton.buttonMode = true;
  6.  
  7. stage.addEventListener(Event.RESIZE, resizeHandler);
  8.  
  9. function functionFullScreen(e:MouseEvent):void {
  10. if (stage.displayState == StageDisplayState.NORMAL){
  11. stage.displayState = StageDisplayState.FULL_SCREEN;
  12. }
  13. else if (stage.displayState == StageDisplayState.FULL_SCREEN){
  14. stage.displayState = StageDisplayState.NORMAL;
  15. }
  16. }
  17.  
  18. function resizeHandler(e:Event):void {
  19. fsButton.x = stage.stageWidth/2;
  20. fsButton.y = stage.stageHeight/2;
  21. }
  22.  

Linie 1-2 - ustawiamy właściwości stołu (sceny) naszej aplikacji. Jeśli scaleMode ma wartość StageScaleMode.NO_SCALE, wówczas treść stołu montażowego zachowuje zdefiniowaną wielkość, nawet jeśli nastąpi zmiana wielkości okna programu Flash Player lub AIR. W tym trybie skalowania właściwości Width oraz Height stołu montażowego (klasy Stage) mogą służyć do określania rzeczywistych wymiarów okna programu w pikselach. (W innych trybach skalowania właściwości stageWidth i stageHeight zawsze odzwierciedlają pierwotną wysokość i szerokość pliku SWF). Ponadto gdy scaleMode ma wartość StageScaleMode.NO_SCALE, a wielkość pliku SWF zostanie zmieniona, następuje wywołanie zdarzenia resize klasy Stage, co umożliwia wprowadzenie odpowiednich korekt.
Wartość z klasy StageAlign, określa wyrównanie sceny we Flash Player lub w przeglądarce. W naszym przypadku właściwość przyjmuje parametr StageAlign.TOP_LEFT, czyli scena jest wyrównana: w pionie do górnej krawędzi, a w poziomie - do lewej.

Linie 4-5 - dodajemy do naszego MovieClip metodę addEventListener, która nasłuchuje zdarzenia dotyczące tego obiektu. W naszym przypadku, po kliknięciu (MouseEvent.CLICK) prostokąta myszką zostanie wywołana funkcja functionFullScreen. Ustawiamy właściwość buttonMode na true, aby nasz MovieClip był traktowany jak button (przycisk).

Linia 7 - do sceny dodajemy metodę addEventListener, która po wywołaniu zdarzenia resize wykona nam funkcję resizeHandler. Zdarzenie resize wykonywane jest automatycznie podczas zmiany trybu wyświetlania.

Linia 9 - definiujemy funkcję functionFullScreen, służącą do zmiany trybu wyświetlania. Jeśli tryb wyświetlania jest NORMAL, to zmieniamy go na FULL_SCREEN, a jeśli obecny tryb to FULL_SCREEN to zmieniamy go na NORMAL.

Linia 18 - definiujemy funkcję resizeHandler, odpowiedzialną za położenie naszego MovieClipa na środku sceny. W tym przypadku pobieramy aktualne rozmiary sceny i ustawiamy button na jej środku.

Oprócz odpowiedniego przystosowania aplikacji Flash musimy, podczas osadzania w HTML, nadać parametrowi 'allowFullScreen' wartość 'true'.

<param name="allowFullScreen" value="true" />

Przykład:

<object data="fullscreen.swf" type="application/x-shockwave-flash" width="400" height="300"><param name="movie" value="fullscreen.swf" /><param name="allowFullScreen" value="true" /></object>
Dodaj do:
  • Facebook
  • Twitter
  • Śledzik
  • Blip
  • Wykop
  • Flaker
  • Grono
  • MySpace
  • Google Bookmarks
  • Print
  • email
  • PDF

Podobne wpisy:

  1. Obsługa kamery we Flashu (AS3)
  2. Komunikacja dwóch plików Flash (AS3)
  3. Ruch wielu obiektów w ActionScript (Flash, AS3) cz. I
  4. Jak pobrać adres URL strony, na której jest osadzony plik Flash (AS3) ?
Tagi:  

1 odpowiedź » do “Pełny ekran we Flashu (AS3)”

  1. cliper pisze:

    witam..
    utworzyłem nie jak pisze: Na scenie kładziemy instancję klasy MovieClip o nazwie „fsButton”.
    ale klasy: Button

    i z kodu usunołem: linike 5i7

    i dopiero mi działa kod w FlashCS4..AS3.0

Dodaj komentarz

*