Met de modus Volledig scherm kunt u instellen dat het werkgebied van een film het gehele scherm van de gebruiker vult, zonder randen of menu's. De eigenschap
displayState
van de klasse Stage wordt gebruikt om de modus Volledig scherm voor een SWF-bestand in en uit te schakelen. De eigenschap
displayState
kan op een van de waarden worden ingesteld, die zijn gedefinieerd door de constanten in de klasse flash.display.StageDisplayState. Als u de modus Volledig scherm wilt inschakelen, stelt u de eigenschap
displayState
in op
StageDisplayState.FULL_SCREEN
:
stage.displayState = StageDisplayState.FULL_SCREEN;
Stel de eigenschap
displayState
in op
StageDisplayState.FULL_SCREEN_INTERACTIVE
om de interactieve schermvullende modus (nieuw in Flash Player 11.3) in te schakelen:
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
In Flash Player kan de modus Volledig scherm alleen via ActionScript worden geïnitieerd als reactie op een muisklik (ook een rechtermuisklik) of een toetsdruk. In het geval van AIR-inhoud die wordt uitgevoerd in de sandbox met toepassingsbeveiliging hoeft de modus Volledig scherm niet te worden geactiveerd om te reageren op een beweging van de gebruiker.
Als u de modus Volledig scherm wilt uitschakelen, stelt u de eigenschap
displayState
in op
StageDisplayState.NORMAL
.
stage.displayState = StageDisplayState.NORMAL;
Een gebruiker kan de modus Volledig scherm verlaten door de focus naar een ander venster te verplaatsen of door een van de verschillende toetscombinaties te gebruiken: de Esc-toets (alle platforms), Ctrl-W (Windows), Cmd-W (Mac) of Alt-F4 (Windows).
De modus Volledig scherm inschakelen in Flash Player
Als u de modus Volledig scherm wilt inschakelen voor een SWF-bestand dat is ingesloten in een HTML-pagina, moet de HTML-code waarmee Flash Player moet worden ingesloten een tag
param
en een kenmerk
embed
met de naam
allowFullScreen
en de waarde
true
bevatten, zoals hier getoond:
<object>
...
<param name="allowFullScreen" value="true" />
<embed ... allowFullScreen="true" />
</object>
In het Flash-ontwerpgereedschap selecteert u eerst Bestand -> Publicatie-instellingen en vervolgens de sjabloon Alleen Flash - volledig scherm toestaan op het tabblad HTML van het dialoogvenster Publicatie-instellingen.
In Flex zorgt u dat de HTML-sjabloon is voorzien van
<object>
- en
<embed>
-tags die volledig scherm ondersteunen.
Als u JavaScript in een webpagina gebruikt om tags voor SWF-insluiting te genereren, moet u het JavaScript wijzigen om de tag
allowFullScreen
en het kenmerk toe te voegen. Als uw HTML-pagina bijvoorbeeld de functie
AC_FL_RunContent()
gebruikt, (die wordt gebruikt in HTML-pagina's die worden gegenereerd door Flash Professional en Flash Builder), moet u als volgt de parameter
allowFullScreen
toevoegen aan die functieaanroep:
AC_FL_RunContent(
...
'allowFullScreen','true',
...
); //end AC code
Dit geldt niet voor SWF-bestanden die met de zelfstandige Flash Player worden uitgevoerd.
Opmerking:
Als u de venstermodus (wmode in HTML) instelt op Dekkend, zonder venster (opaque) of Transparant, zonder venster (transparent), blijft het schermvullende venster altijd dekkend.
Er gelden bovendien enkele beveiligingsbeperkingen voor het gebruik van de modus Volledig scherm met Flash Player in een browser. Deze beperkingen worden beschreven in
Beveiliging
.
De interactieve schermvullende modus inschakelen in Flash Player 11.3 en later
Flash Player 11.3 en hoger biedt ondersteuning voor de interactieve schermvullende modus waarin alle toetsenbordtoetsen volledig worden ondersteund (met uitzondering van
Esc
waarmee deze modus wordt afgesloten). De interactieve schermvullende modus is handig tijdens het spelen van games, bijvoorbeeld om te kunnen chatten in een multiplayergame of voor de WASD-toetsenbordbesturingselementen in een FPS-game (First Person Shooter-game).
Als u de interactieve schermvullende modus wilt inschakelen voor een SWF-bestand dat is ingesloten in een HTML-pagina, moet de HTML-code voor het insluiten van Flash Player een tag
param
en een kenmerk
embed
met de naam
allowFullScreenInteractive
bevatten, plus de waarde
true
, zoals hier getoond:
<object>
...
<param name="allowFullScreenInteractive" value="true" />
<embed ... allowFullScreenInteractive="true" />
</object>
In het Flash-ontwerpgereedschap selecteert u eerst Bestand -> Publicatie-instellingen en vervolgens de sjabloon Alleen Flash - volledig scherm toestaan op het tabblad HTML van het dialoogvenster Publicatie-instellingen.
Zorg dat de HTML-sjablonen in Flash Builder en Flex de tags
<object>
en
<embed>
bevatten ter ondersteuning van de interactieve schermvullende modus.
Als u JavaScript in een webpagina gebruikt om tags voor SWF-insluiting te genereren, moet u het JavaScript wijzigen om de tag en het kenmerk
allowFullScreenInteractive
toe te voegen. Als uw HTML-pagina bijvoorbeeld de functie
AC_FL_RunContent()
gebruikt (die wordt gebruikt in HTML-pagina's die worden gegenereerd door Flash Professional en Flash Builder), moet u als volgt de parameter
allowFullScreenInteractive
toevoegen aan die functieaanroep:
AC_FL_RunContent(
...
'allowFullScreenInteractive','true',
...
); //end AC code
Dit geldt niet voor SWF-bestanden die met de zelfstandige Flash Player worden uitgevoerd.
Grootte van het werkgebied in het volledig scherm en schalen
De eigenschappen
Stage.fullScreenHeight
en
Stage.fullScreenWidth
retourneren de hoogte en breedte van de monitor die wordt gebruikt voor de modus Volledig scherm als deze direct wordt ingeschakeld. Deze waarden zijn mogelijk onjuist als de gebruiker de mogelijkheid heeft de browser van de ene naar de andere monitor te verplaatsen tussen het ophalen van de waarde en het overschakelen naar schermvullende weergave. Als u deze waarden ophaalt in dezelfde gebeurtenishandler als waarin u de eigenschap
Stage.displayState
instelt op
StageDisplayState.FULL_SCREEN
, zijn de waarden correct. Als een gebruiker meerdere schermen heeft, zal de inhoud van het SWF-bestand één scherm vullen. Flash Player en AIR gebruiken metrische informatie om te bepalen welke monitor het grootste gedeelte van het SWF-bestand bevat en gebruiken die monitor voor de modus Volledig scherm. De eigenschappen fullScreenHeight en fullScreenWidth geven alleen de afmetingen aan van de monitor die wordt gebruikt voor de modus Volledig scherm. Zie
Stage.fullScreenHeight
en
Stage.fullScreenWidth
in de
Naslaggids voor ActionScript 3.0 voor het Adobe Flash-platform
voor meer informatie.
Het gedrag van werkgebiedschaling in de modus Volledig scherm is hetzelfde als in de normale modus; het schalen wordt beheerd door de eigenschap
scaleMode
van de klasse Stage. Als de eigenschap
scaleMode
is ingesteld op
StageScaleMode.NO_SCALE
, weerspiegelen de eigenschappen
stageWidth
en
stageHeight
van het werkgebied de grootte van het schermgebied dat wordt gebruikt door het SWF-bestand (in dit geval het gehele scherm). Als het SWF-bestand wordt weergegeven in de browser, bepaalt de bijbehorende HTML-parameter de instelling.
U kunt de gebeurtenis
fullScreen
van de klasse Stage gebruiken om te detecteren en reageren wanneer de modus Volledig scherm is in- of uitgeschakeld. U wilt bijvoorbeeld items aan het scherm toevoegen of verwijderen, of de grootte van items wijzigen wanneer u de modus Volledig scherm in- of uitschakelt, zoals in dit voorbeeld:
import flash.events.FullScreenEvent;
function fullScreenRedraw(event:FullScreenEvent):void
{
if (event.fullScreen)
{
// Remove input text fields.
// Add a button that closes full-screen mode.
}
else
{
// Re-add input text fields.
// Remove the button that closes full-screen mode.
}
}
mySprite.stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenRedraw);
Zoals getoond door deze code, is het object Event voor de gebeurtenis
fullScreen
een instantie van de klasse flash.events.FullScreenEvent, die een eigenschap
fullScreen
bevat die aangeeft of de modus Volledig scherm is ingeschakeld (
true
) of niet (
false
).
Toetsenbordondersteuning in de modus Volledig scherm
Wanneer Flash Player wordt uitgevoerd in een browser, worden alle toetsenbordgerelateerde ActionScript-codes, zoals toetsenbordgebeurtenissen en tekstinvoer in instanties TextField uitgeschakeld in de modus Volledig scherm. De uitzonderingen (de toetsen die zijn ingeschakeld) zijn:
-
Geselecteerde niet-afdrukbare toetsen, met name de pijltjestoetsen, spatiebalk en de tabtoets
-
Sneltoetsen waarmee de modus Volledig scherm kan worden beëindigd: Esc (Windows en Mac), Ctrl-W (Windows), Command-W (Mac) en Alt-F4
Deze beperkingen gelden niet voor SWF-inhoud die wordt uitgevoerd in de zelfstandige versie van Flash Player of in AIR. AIR ondersteunt een interactieve schermvullende modus waarbij invoer met het toetsenbord is toegestaan.
Muisondersteuning in de modus Volledig scherm
Standaard functioneren muisgebeurtenissen in de modus Volledig scherm op dezelfde manier als in andere modi waarbij het scherm niet volledig wordt weergegeven. In de modus Volledig scherm, kunt u de eigenschap
Stage.mouseLock
echter ook zo instellen dat de muisvergrendeling optioneel kan worden ingeschakeld. Bij de muisvergrendeling wordt de cursor uitgeschakeld en kan de muis zonder begrenzingen worden verplaatst.
Opmerking:
U kunt de muisvergrendeling alleen inschakelen bij bureaubladtoepassingen in de modus Volledig scherm. Als u deze functie wilt instellen bij toepassingen die niet in de modus Volledig scherm zijn, of bij toepassingen op mobiele apparaten, treedt er een uitzonderingsfout op.
Muisvergrendeling wordt automatisch uitgeschakeld en de muiscursor wordt weer zichtbaar als:
-
De gebruiker de modus Volledig scherm afsluit door op Escape (alle platformen), Control-W (Windows), Command-W (Mac) of Alt-F4 (Windows) te drukken.
-
Het toepassingsvenster verliest de focus.
-
De instellingeninterface is zichtbaar, inclusief alle dialoogvensters voor privacy.
-
Er wordt een native dialoogvenster weergegeven, bijvoorbeeld voor het uploaden van bestanden.
Gebeurtenissen die gekoppeld zijn aan muisbewegingen, zoals de gebeurtenis
mouseMove
, gebruiken de klasse MouseEvent om het gebeurtenisobject te representeren. Wanneer de muisvergrendeling is uitgeschakeld, gebruikt u de eigenschappen
MouseEvent.localX
en
MouseEvent.localY
om de locatie van de muis te bepalen. Wanneer de muisvergrendeling is ingeschakeld, gebruikt u de eigenschappen
MouseEvent.movementX
en
MouseEvent.movementY
om de locatie van de muis vast te stellen. De eigenschappen
movementX
en
movementY
bevatten gegevens over de positieveranderingen van de muis sinds de laatste gebeurtenis, in plaats van de absolute coördinaten van de muislocatie.
Hardwarematige schaling in de modus Volledig scherm
Met de eigenschap
fullScreenSourceRect
van de klasse Stage kunt u instellen dat Flash Player of AIR een bepaald gebied van het werkgebied schalen naar de modus Volledig scherm. Indien beschikbaar gebruiken Flash Player en AIR hardwarematige schaling, waarbij de videokaart op de computer van de gebruiker wordt gebruikt en inhoud doorgaans sneller wordt weergegeven dan bij softwarematige schaling.
U kunt gebruikmaken van hardwarematige schaling door het gehele werkgebied of een deel van het werkgebied in te stellen op de modus Volledig scherm. Met de volgende ActionScript 3.0-code wordt het gehele werkgebied ingesteld op de modus Volledig scherm:
import flash.geom.*;
{
stage.fullScreenSourceRect = new Rectangle(0,0,320,240);
stage.displayState = StageDisplayState.FULL_SCREEN;
}
Wanneer deze eigenschap is ingesteld op een geldige rechthoek en de eigenschap
displayState
is ingesteld op de modus Volledig scherm, schaalt Flash Player of AIR het opgegeven gebied. De werkelijke werkgebiedgrootte in pixels wijzigt niet binnen ActionScript. Flash Player en AIR hanteren een minimumgrens voor de grootte van de rechthoek om het standaardbericht weer te geven waarin wordt aangegeven dat de gebruiker op Esc moet drukken om de modus Volledig scherm af te sluiten. Deze grens ligt meestal rond 260 x 30 pixels maar kan variëren, afhankelijk van het platform en de Flash Player-versie.
De eigenschap
fullScreenSourceRect
kan alleen worden ingesteld wanneer Flash Player of AIR niet in de modus Volledig scherm wordt uitgevoerd. Wanneer u deze eigenschap correct wilt gebruiken, moet u deze eerst instellen en vervolgens de eigenschap
displayState
op de modus Volledig scherm instellen.
U kunt schalen inschakelen door de eigenschap
fullScreenSourceRect
in te stellen op een rechthoekig object.
stage.fullScreenSourceRect = new Rectangle(0,0,320,240);
U kunt schalen uitschakelen door de eigenschap
fullScreenSourceRect
in te stellen op
null
.
stage.fullScreenSourceRect = null;
Als u alle hardwareversnellingsfuncties van Flash Player wilt benutten, schakelt u deze in via het dialoogvenster met instellingen voor Flash Player. U kunt het dialoogvenster laden door met de rechtermuisknop (Windows) of terwijl u Control ingedrukt houdt (Mac) te klikken in Flash Player-inhoud in uw browser. Selecteer het tabblad Display, dit is het eerste tabblad, en klik op het selectievakje Hardwareversnelling.
Venstermodi Direct en GPU-compositing
Flash Player 10 introduceert twee venstermodi, Direct en GPU-compositing, die u kunt inschakelen via de publicatie-instellingen in het Flash-ontwerpgereedschap. Deze modi worden niet ondersteund in AIR. Als u deze modi wilt gebruiken, moet u de hardwareversnelling inschakelen voor Flash Player.
In de modus Direct wordt het snelste, meest directe pad gebruikt om grafische gegevens met push-technologie te leveren aan het scherm, wat gunstig is voor het afspelen van video.
GPU-compositing gebruikt de grafische verwerkingseenheid op de videokaart om de compositing te versnellen. Videocompositing is het samenvoegen van meerdere grafische lagen om één videobeeld te creëren. Als compositing wordt versneld met de GPU kunnen hierdoor de prestaties van YUV-conversie, kleurcorrectie, roteren of schalen, en overvloeien worden verbeterd. YUV-conversie is de kleurconversie van samengestelde analoge signalen die voor transmissie worden gebruikt, naar het kleurmodel RGB (rood, groen, blauw) dat voor het opnemen en afspelen van videobeelden wordt gebruikt. Door het gebruik van GPU om compositing te versnellen, is er minder geheugen nodig en hoeft de CPU minder berekeningen uit te voeren. Daarnaast wordt video in standaarddefinitie vloeiender afgespeeld.
Wees voorzichtig met het implementeren van deze venstermodi. Voor GPU-compositing zijn mogelijk veel geheugen- en CPU-resources vereist. Als sommige bewerkingen (zoals overvloeimodi, filteren, knippen en maskeren) niet kunnen worden uitgevoerd in de GPU, worden ze uitgevoerd door de software. Adobe raadt u aan niet meer dan één SWF-bestand per HTML-pagina uit te voeren wanneer u deze modi gebruikt, en deze modi niet in te schakelen voor banners. De functie Film testen van Flash maakt geen gebruik van hardwareversnelling maar u kunt hardwareversnelling gebruiken via de optie Voorvertoning publiceren.
Het instellen van een hogere framesnelheid in het SWF-bestand dan 60, de maximale snelheid voor schermvernieuwing, is zinloos. Door een framesnelheid tussen 50 en 55 in te stellen, worden verloren frames toegestaan die om diverse redenen soms optreden.
Voor de modus Direct is Microsoft® DirectX 9 vereist met 128 MB VRAM in Windows en OpenGL voor Apple Macintosh, Mac OS X v10.2 of hoger. Voor GPU-compositing zijn Microsoft DirectX 9 en ondersteuning voor Pixel Shader 2.0 vereist met 128 MB VRAM in Windows. Op Mac OS X en in Linux zijn voor GPU-compositing OpenGL 1.5 en diverse OpenGL-uitbreidingen vereist (framebufferobject, multitexture, shaderobjecten, arceringstaal, fragmentarcering).
U kunt de versnellingsmodi
direct
en
gpu
per SWF activeren in het dialoogvenster Publicatie-instellingen voor Flash. Ga hiervoor naar het menu Hardwareversnelling op het tabblad Flash. Als u Geen kiest, wordt de venstermodus
default
,
transparent
of
opaque
hersteld, zoals is vastgelegd in de instelling Venstermodus op het tabblad HTML.