Med helskärmsläge kan du ställa in en filmscen så att den fyller hela bildskärmen, utan några behållarkanter eller menyer. Scenklassens egenskap
displayState
används till att växla mellan helskärmsläge och vanligt läge för en SWF-fil. Egenskapen
displayState
kan anges med något av värdena som finns definierade med konstanterna i klassen flash.display.StageDisplayState. Om du vill växla till helskärmsläge tilldelar du egenskapen
displayState
värdet
StageDisplayState.FULL_SCREEN
:
stage.displayState = StageDisplayState.FULL_SCREEN;
Om du vill aktivera interaktivt helskärmsläge (nytt i Flash Player 11.3) anger du egenskapen
displayState
som
StageDisplayState.FULL_SCREEN_INTERACTIVE
:
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
Helskärmsläge i Flash Player kan endast initieras via en musklickning (även högerklick) eller tangenttryckning i ActionScript. AIR-innehåll som körs i säkerhetssandlådan application kräver inte att helskärmsläget används som svar på en användargest.
Om du vill stänga helskärmsläget tilldelar du egenskapen
displayState
värdet
StageDisplayState.NORMAL
.
stage.displayState = StageDisplayState.NORMAL;
Dessutom kan användaren välja att avbryta helskärmsläget genom att växla fokus till ett annat fönster eller genom att använda någon av flera tangentkombinationer: Esc-tangenten (alla plattformar), Ctrl-W (Windows), Kommando-W (Mac) eller Alt-F4 (Windows).
Aktivera helskärmsläge i Flash Player
Om du vill aktivera helskärmsläge för en SWF-fil som är inbäddad på en HTML-sida måste HTML-koden som bäddar in Flash Player innehålla en
param
-tagg och ett
embed
-attribut med namnet
allowFullScreen
och värdet
true
enligt följande:
<object>
...
<param name="allowFullScreen" value="true" />
<embed ... allowFullScreen="true" />
</object>
Välj Arkiv -> Publiceringsinställningar i utvecklingsverktyget i Flash och välj sedan mallen Endast Flash - Tillåt helskärm på fliken HTML i dialogrutan Publiceringsinställningar.
I Flex ser du till att HTML-mallen omfattar
<object>
- och
<embed>
-taggarna som stöder helskärm.
Om du använder JavaScript i en webbsida för att generera SWF-inbäddande taggar måste du ändra JavaScript-koden och lägga till taggen och attributet
allowFullScreen param
. Om HTML-sidan till exempel använder funktionen
AC_FL_RunContent()
(som används på HTML-sidor som genererats av Flash Professional och Flash Builder) bör du lägga till parametern
allowFullScreen
i det funktionsanropet enligt följande:
AC_FL_RunContent(
...
'allowFullScreen','true',
...
); //end AC code
Detta gäller inte för SWF-filer som körs i den fristående Flash Player.
Obs!
Om du ställer in fönsterläget (wmode i HTML) på ogenomskinlig fönsterlös (opaque) eller genomskinlig fönsterlös (transparent) blir helskärmsfönstret ogenomskinligt
Det finns också säkerhetsrelaterade restriktioner som begränsar användningen av helskärmsläge med Flash Player i en webbläsare. Dessa begränsningar beskrivs i avsnittet
Säkerhet
.
Aktivera interaktivt helskärmsläge i Flash Player 11.3 och senare
Flash Player 11.3 och senare versioner har stöd för interaktivt helskärmsläge, vilket ger fullständigt stöd för alla tangentbordstangenter (utom
Esc
, som avslutar det interaktiva helskärmsläget). Helskärmsläge är användbart för spel (till exempel för att chatta i ett fleranvändarspel eller för WASD-tangentbordskontroller i ett FPS-spel (First-Person Shooter)).
Om du vill aktivera interaktivt helskärmsläge för en SWF-fil som bäddats in på en HTML-sida måste HTML-koden för att bädda in Flash Player innehålla en
param
-tagg och ett
embed
-attribut med namnet
allowFullScreenInteractive
och värdet
true
, enligt nedanstående:
<object>
...
<param name="allowFullScreenInteractive" value="true" />
<embed ... allowFullScreenInteractive="true" />
</object>
Välj Arkiv -> Publiceringsinställningar i utvecklingsverktyget i Flash och välj sedan mallen Endast Flash - Tillåt helskärm på fliken HTML i dialogrutan Publiceringsinställningar.
I Flash Builder och Flex kontrollerar du att HTML-mallen innehåller taggarna
<object>
och
<embed>
, som har stöd för interaktivt helskärmsläge.
Om du använder JavaScript på en webbsida för att generera taggarna för SWF-inbäddning måste du ändra JavaScript-koden och lägga till taggen
allowFullScreenInteractive param
och attributet. Om HTML-sidan till exempel använder funktionen
AC_FL_RunContent()
(som används på HTML-sidor som genererats av Flash Professional och Flash Builder) bör du lägga till parametern
allowFullScreenInteractive
i det funktionsanropet enligt följande:
AC_FL_RunContent(
...
'allowFullScreenInteractive','true',
...
); //end AC code
Detta gäller inte för SWF-filer som körs i den fristående Flash Player-versionen.
Scenstorlek och skalning i helskärmsläge
Egenskaperna
Stage.fullScreenHeight
och
Stage.fullScreenWidth
returnerar höjd och bredd på bildskärmen som används vid helskärmsstorleken, om läget aktiveras omedelbart. Dessa värden kan bli fel om användaren har möjlighet att flytta webbläsaren från en bildskärm till en annan efter det att värdena har hämtats men innan helskärmsläget aktiveras. Om du hämtar värdena i samma händelsehanterare där egenskapen
Stage.displayState
tilldelats värdet
StageDisplayState.FULL_SCREEN
, stämmer värdena. Om en användare har flera bildskärmar expanderas SWF-innehållet så att bara en bildskärm fylls. I Flash Player och AIR används en mätmetod för att avgöra vilken bildskärm som innehåller den största andelen av SWF-innehåll och använda denna vid helskärmsläge. Egenskaperna fullScreenHeight och fullScreenWidth återspeglar endast storleken på den skärm som används i helskärmsläge. Du hittar mer information i avsnitten om
Stage.fullScreenHeight
och
Stage.fullScreenWidth
i
Referenshandbok för ActionScript 3.0 i Adobe Flash-plattformen
.
Scenskalning vid helskärmsläge är samma som vid normalläge; skalningen kontrolleras via scenklassens egenskap
scaleMode
. Om egenskapen
scaleMode
är angiven med
StageScaleMode.NO_SCALE
ändras scenegenskaperna
stageWidth
och
stageHeight
och återspeglar storleken på skärmarean som innehåller SWF-filen (i detta fall hela skärmen), om den visas i webbläsaren med HTML-parametern för den här inställningen.
Du kan använda scenklassens händelse
fullScreen
för att ta reda på och reagera på huruvida helskärmsläget används eller inte. Du kanske vill omplacera, lägga till eller ta bort objekt från skärmen när helskärmsläge används, som i detta exempel:
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);
Som du ser i koden är händelseobjektet för händelsen
fullScreen
en instans av klassen flash.events.FullScreenEvent, som innehåller egenskapen
fullScreen
som anger om helskärmsläget används (
true
) eller inte (
false
).
Stöd för tangentbord i helskärmsläge
Alla tangentbordsrelaterade ActionScript, till exempel tangentbordshändelser och textinmatning i TextField-instanser, inaktiveras i helskärmsläge när Flash Player körs i en webbläsare. Undantagen (de tangenter som aktiveras) är:
-
valda tangenter som inte skrivs ut, t.ex. piltangenterna, blankstegstangenten och tabbtangenten
-
kortkommandon som inaktiverar helskärmsläget: Esc (Windows och Mac), Ctrl-W (Windows), Command-W (Mac) och Alt-F4.
Dessa begränsningar gäller inte för SWF-innehåll som körs i den fristående Flash Player eller i AIR. AIR stöder ett interaktivt helskärmsläge som tillåter indata från tangentbordet.
Stöd för mus i helskärmsläge
Som standard fungerar mushändelser i helskärmsläge på samma sätt som utan helskärmsläge. I helskärmsläge kan du dock ange egenskapen
Stage.mouseLock
för att aktivera låsning av musen, om du vill. Om du låser musen inaktiveras markören och obegränsade musrörelser aktiveras.
Obs!
Du kan bara aktivera låsning av musen i helskärmsläge för skrivbordsprogram. Om du anger det på program som inte är i helskärmsläge, eller program på mobila enheter, genereras ett undantagsfel.
Låsning av musen inaktiveras automatiskt, och musmarkören blir synlig igen när:
-
Användaren avslutar helskärmsläget med Esc-tangenten (alla plattformar), Ctrl-W (Windows), Kommando-W (Mac) eller Alt-F4 (Windows).
-
Programfönstret förlorar fokus.
-
Eventuella inställningsgränssnitt är synliga, inklusive alla sekretessdialogrutor.
-
En systemspecifik dialogruta visas, t.ex. en dialogruta för filöverföring.
Händelser som är kopplade till musrörelser, som
mouseMove
-händelsen, använder klassen MouseEvent för att representera händelseobjektet. När låsning av musen är inaktiverat använder du egenskaperna
MouseEvent.localX
och
MouseEvent.localY
för att fastställa var musen finns. När låsning av musen är aktiverat använder du egenskaperna
MouseEvent.movementX
och
MouseEvent.movementY
för att fastställa var musen finns. Egenskaperna
movementX
och
movementY
innehåller förändringar av musens position sedan den senaste händelsen, i stället för absoluta koordinater för musens position.
Maskinvaruskalning i helskärmsläge
Med scenklassens
fullScreenSourceRect
-egenskap kan du ställa in Flash Player eller AIR så att ett visst område på scenen skalas efter helskärmsläget. Om det går skalar Flash Player och AIR maskinvaran med hjälp av grafik- och bildskärmskortet på användarens dator. Innehållet visas vanligtvis snabbare med maskinvaruskalning än med programvaruskalning.
För att kunna dra nytta av maskinvaruskalning ställer du in hela scenen eller en del av scenen på helskärmsläge. I följande ActionScript 3.0-kod ställs hela scenen in på helskärmsläge:
import flash.geom.*;
{
stage.fullScreenSourceRect = new Rectangle(0,0,320,240);
stage.displayState = StageDisplayState.FULL_SCREEN;
}
När den här egenskapen är inställd på en giltig rektangel och egenskapen
displayState
är inställd på helskärmsläge skalar Flash Player och AIR det angivna området. Scenens faktiska storlek i pixlar i ActionScript ändras inte. Flash Player och AIR tillämpar en lägsta gräns för rektangelns storlek för att standardmeddelandet ”Tryck på Esc för att avsluta helskärmsläget” ska få plats. Gränsen är vanligen ungefär 260 gånger 30 pixlar, men den kan variera beroende på plattform och Flash Player-version.
Egenskapen
fullScreenSourceRect
kan bara ställas in när Flash Player inte är i helskärmsläge. Om du använder den här egenskapen är det viktigt att du först definierar egenskapen och sedan tilldelar egenskapen
displayState
värdet för helskärmsläge.
Aktivera skalning genom att ställa in egenskapen
fullScreenSourceRect
på ett rektangelobjekt.
stage.fullScreenSourceRect = new Rectangle(0,0,320,240);
Om du vill inaktivera skalning tilldelar du egenskapen
fullScreenSourceRect
värdet
null
.
stage.fullScreenSourceRect = null;
Om du vill utnyttja alla funktioner för maskinvaruacceleration med Flash Player aktiverar du dem i dialogrutan Flash Player-inställningar. Du öppnar dialogrutan genom att högerklicka (Windows) eller Control-klicka (Mac) i Flash Player-innehållet i webbläsaren. Markera fliken Visning, som är den första fliken, och klicka i kryssrutan: Aktivera maskinvaruacceleration.
Direkt och GPU-sammansatt fönsterläge
Flash Player 10 innehåller två nya fönsterlägen, direkt och GPU-sammansättning, som du kan aktivera via publiceringsinställningarna i utvecklingsverktyget i Flash. Dessa lägen stöds inte i AIR. Om du vill använda dessa lägen måste du aktivera maskinvaruacceleration för Flash Player.
Direkt läge använder den snabbaste, mest direkta, vägen för att skicka grafiken till skärmen, vilket är en fördel vid videouppspelning.
GPU-sammansättning använder grafikprocessorn på bildskärmskortet för att accelerera sammansättningen. Videosammansättning är en process för att placera flera bilder i lager och skapa en enda videobild. När sammansättningen accelereras med GPU kan prestanda i YUV-konvertering, färgkorrigering, rotation eller skalning samt blandning förbättras. YUV-konvertering är den färgkonvertering av sammansatta analoga signaler – som används för överföring – till RGB-färgmodellen (röd, grön, blå) som videokameror och bildskärmar använder. Om du använder GPU för att accelerera sammansättning minskar behovet av minne och datorkraft i processorn. Det blir också en jämnare uppspelning av video med standarddefinition.
Var försiktig när du implementerar dessa fönsterlägen. Att använda GPU-sammansättning kan kräva mycket minne och processorresurser. Om vissa åtgärder (till exempel blandningslägen, filtrering, urklipp eller maskering) inte kan utföras i GPU, utförs de av programvaran. Adobe rekommenderar att du begränsar dig till en SWF-fil per HTML-sida när du använder dessa lägen och du bör inte aktivera dessa lägen för banderoller. Funktionen Flash-alternativet Testa filmen har inte maskinvaruacceleration, men du kan använda den via alternativet Förhandsgranska publicering.
Om du ställer in en bildhastighet i SWF-filen som är högre än 60, är den maximala uppdateringsfrekvensen oanvändbar. Om du ställer in bildhastigheten på 50 till och med 55 kan bildrutor uteslutas, vilket då och då kan ske av olika anledningar.
Om du använder direkt läge krävs Microsoft® DirectX 9 med 128 MB VRAM i Windows och OpenGL för Apple Macintosh, Mac OS X v10.2 eller senare. För GPU-sammansättning krävs Microsoft DirectX 9 och Pixel Shader 2.0-stöd i Windows med 128 MB VRAM. Med Mac OS X och Linux krävs OpenGL 1.5 och flera OpenGL-tillägg (bildrutebuffertobjekt, flera texturer, skuggningsobjekt, skuggningsspråk och fragmentskuggning) för GPU-sammansättning.
Du kan aktivera
direkt
- och
GPU
-accelerationsläget per SWF-fil via Flash-dialogrutan Publiceringsinställningar, med hjälp av menyn Maskinvaruacceleration på fliken Flash. Om du väljer Ingen återgår fönsterläget till
standard
,
genomskinlig
eller
ogenomskinlig
, beroende på vad som anges i inställningen för fönsterläge på fliken HTML.