Spela upp video i helskärmslägeFlash Player 9 och senare, Adobe AIR 1.0 och senare 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äsareInnan 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ägeNä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ägeEn 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ägeNä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 de här omständigheterna kan Flash Player-program ofta främjas av ett byte till klassen StageVideo från klassen Video. 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 återgivning. |
|