Med Flash Player och AIR kan du skapa ett helskärmsprogram för videouppspelning, med stöd för videoskalning till helskärm.
För AIR-innehåll som körs i helskärmsläge på skrivbordet är systemets skärmsläckare och energisparalternativ inaktiverade under uppspelningen tills videoindata upphör eller användaren avbryter helskärmsläget.
Mer information om hur du använder helskärmsläget finns i avsnittet
Arbeta i helskärmsläge
.
Aktivera helskärmsläget för Flash Player i en webbläsare
Innan du kan implementera helskärmsläge för Flash Player i en webbläsare måste du aktivera det via programmets publiceringsmall. Mallarna som använder helskärmsläge omfattar
<object>
- och
<embed>
-taggar som innehåller en
allowFullScreen
-parameter. I följande exempel visas
allowFullScreen
-parametern i en
<embed>
-tagg.
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="fullScreen" width="100%" height="100%"
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
...
<param name="allowFullScreen" value="true" />
<embed src="fullScreen.swf" allowFullScreen="true" quality="high" bgcolor="#869ca7"
width="100%" height="100%" name="fullScreen" align="middle"
play="true"
loop="false"
quality="high"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer">
</embed>
...
</object>
Välj Arkiv -> Publiceringsinställningar 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.
Initiera helskärmsläge
När det gäller Flash Player-innehåll som körs i en webbläsare aktiverar du helskärmsläget för video som svar på en musklickning eller tangenttryckning. Du kan till exempel initiera helskärmsläget när användaren klickar på en knapp med etiketten Helskärm eller väljer kommandot Helskärm på snabbmenyn. Om du vill svara användaren lägger du till en händelseavlyssnare i objektet som åtgärden utförs på. Följande kod lägger till en händelseavlyssnare för en knapp som användaren klickar på för att aktivera helskärmsläget:
var fullScreenButton:Button = new Button();
fullScreenButton.label = "Full Screen";
addChild(fullScreenButton);
fullScreenButton.addEventListener(MouseEvent.CLICK, fullScreenButtonHandler);
function fullScreenButtonHandler(event:MouseEvent)
{
stage.displayState = StageDisplayState.FULL_SCREEN;
}
Koden initierar helskärmsläge genom att
Stage.displayState
-egenskapen tilldelas värdet
StageDisplayState.FULL_SCREEN
. Den här koden skalar hela scenen till helskärm med videoskalningen i förhållande till utrymmet som upptas på scenen.
Med egenskapen
fullScreenSourceRect
kan du ange att ett visst område på scenen ska skalas till helskärm. Först definierar du rektangeln som du vill skala till helskärm. Tilldela den sedan till egenskapen
Stage.fullScreenSourceRect
. Den här versionen av funktionen
fullScreenButtonHandler()
lägger till två extra kodrader som skalar enbart videon till helskärm.
private function fullScreenButtonHandler(event:MouseEvent)
{
var screenRectangle:Rectangle = new Rectangle(video.x, video.y, video.width, video.height);
stage.fullScreenSourceRect = screenRectangle;
stage.displayState = StageDisplayState.FULL_SCREEN;
}
I det här exemplet anropas en händelsehanterare som svar på en musklickning, men tekniken för att övergå till helskärmsläge är samma för både Flash Player och AIR. Definiera rektangeln som du vill skapa och ställ sedan in egenskapen
Stage.displayState
. Mer information finns i
Referenshandbok för ActionScript 3.0 i Adobe Flash-plattformen
.
Det fullständiga exemplet, som följer, lägger till kod som skapar anslutningen och NetStream-objektet för videon och börjar spela upp den.
package
{
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.media.Video;
import flash.display.StageDisplayState;
import fl.controls.Button;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.FullScreenEvent;
import flash.geom.Rectangle;
public class FullScreenVideoExample extends Sprite
{
var fullScreenButton:Button = new Button();
var video:Video = new Video();
public function FullScreenVideoExample()
{
var videoConnection:NetConnection = new NetConnection();
videoConnection.connect(null);
var videoStream:NetStream = new NetStream(videoConnection);
videoStream.client = this;
addChild(video);
video.attachNetStream(videoStream);
videoStream.play("http://www.helpexamples.com/flash/video/water.flv");
fullScreenButton.x = 100;
fullScreenButton.y = 270;
fullScreenButton.label = "Full Screen";
addChild(fullScreenButton);
fullScreenButton.addEventListener(MouseEvent.CLICK, fullScreenButtonHandler);
}
private function fullScreenButtonHandler(event:MouseEvent)
{
var screenRectangle:Rectangle = new Rectangle(video.x, video.y, video.width, video.height);
stage.fullScreenSourceRect = screenRectangle;
stage.displayState = StageDisplayState.FULL_SCREEN;
}
public function onMetaData(infoObject:Object):void
{
// stub for callback function
}
}
}
Funktionen
onMetaData()
är en callback-funktion som hanterar videometadata, om sådana finns. En callback-funktion är en funktion som körtidsbiblioteket anropar som svar på någon typ av förekomst eller händelse. I det här exemplet är funktionen
onMetaData()
en stub som innehåller det som krävs för att ange funktionen. Mer information finns i
Skriva callback-metoder för metadata och referenspunkter
Lämna helskärmsläge
En användare kan lämna helskärmsläget med något av kortkommandona, till exempel Esc-tangenten. Du kan avbryta helskärmsläget i ActionScript genom att ge
Stage.diplayState
-egenskapen värdet
StageDisplayState.NORMAL
. Koden i följande exempel avbryter helskärmsläget när händelsen NetStream.Play.Stop
netStatus
inträffar.
videoStream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
private function netStatusHandler(event:NetStatusEvent)
{
if(event.info.code == "NetStream.Play.Stop")
stage.displayState = StageDisplayState.NORMAL;
}
Maskinvaruacceleration i helskärmsläge
När du skalar om ett rektangulärt område av scenen till helskärmsläge används maskinvaruacceleration i Flash Player eller AIR om det är tillgängligt och aktiverat. Körningsmiljön använder datorns bildskärmskort så att det ska gå snabbare att skala videon, eller en del av scenen, till helskärmsstorlek. Under sådana förhållanden kan det vara en fördel att för FlashPlayer-program använda klassen StageVideo istället för klassen Video (eller Camera, i Flash Player 11.4/AIR 3.4 och senare).
Mer information om maskinvaruacceleration i helskärmsläge finns i avsnittet
Arbeta i helskärmsläge
. Mer information om StageVideo finns i
Använda klassen StageVideo för maskinvaruaccelererad presentation
.