Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Eseguire il filmato a schermo intero

Metodi, in ActionScript 2 e ActionScript 3, per visualizzare il video a schermo intero
Metodi, in ActionScript 2 e ActionScript 3, per visualizzare il video a schermo intero
Link copiato negli appunti

Poiché i file video in alta definizione solitamente hanno grosse dimensioni in termini di pixel può essere utile eseguirli a schermo intero, oltretutto non ha particolarmente senso usare un video HD per poi riprodurlo in uno spazio visivo ridotto dove quasi non si noterebbe la differenza rispetto a video codificati con codec inferiori. Il Flash Player 9 consente di mandare in esecuzione a tutto schermo un file SWF, ma non solo: permette anche di stabilire quale parte del filmato mostrare, nascondendo ad esempio determinate aree.

Per poter passare in modalità Fullscreen dal Flash Player è necessario impostare un'opzione dalle Impostazioni di pubblicazione: dal menu File scegliamo quindi la voce Publish Settings (oppure Ctrl+Shift+F12) e portiamoci nella scheda HTML, quindi dal menu a tendina Template scegliamo la voce Flash Only - Allow Fullscreen.

Figura 5. Scelta dell'opzione necessaria per l'uso del fullscreen
Screenshot del pannello

Questa operazione va eseguita sia che il proprio progetto sia impostato in Actionscript 2 o in Actionscript 3, a variare è invece il codice della funzione da usare per il passaggio dalla modalità "normale" a quella a tutto schermo (e viceversa).

Modalità a schermo intero con Actionscript 2

Per prima cosa importiamo nel nostro FLA il package flash.geom.Rectangle, che ci permetterà di mostrare a schermo intero soltanto il video e non altri eventuali contenuti dell'SWF. Aggiungiamo quindi come prima riga di codice:

import flash.geom.Rectangle

Scriviamo quindi la funzione che si occuperà di avviare la modalità a schermo intero:

Listato 6.1. Visualizza il filmato a schermo intero

function schermoIntero(){
  // stabiliamo l'area da mandare in fullscreen
  var area:Rectangle = new Rectangle(player._x, player._y, player._width, player._height);
  Stage["fullScreenSourceRect"] = area;
  // se non siamo in modalità schermo intero
  if(Stage.displayState == "normal"){
    // la attiviamo
    Stage.displayState = "fullscreen";
  }else{
    // altrimenti la disattiviamo
    Stage.displayState = "normal";
  }
}

Come possiamo notare l'area da inviare a schermo intero parte dalle coordinate dell'oggetto player e si estende per larghezza e altezza del medesimo oggetto. Ovviamente è possibile inserire qualsiasi valore all'interno dell'oggetto Rectangle, che verrà poi associato alla proprietà fullScreenSourceRect dell'oggetto Stage.

Le righe seguenti si occupano di consentire il passaggio dalla modalità normale a quella a schermo intero e viceversa; non resta che associare la funzione a un determinato evento, per esempio il click con il mouse all'interno del filmato:

_root.onMouseDown = schermoIntero

Nella figura seguente è possibile capire meglio l'utilità della proprietà fullScreenSourceRect: il filmato SWF di partenza è il medesimo e presenta oltre al player video alcuni rettangoli rossi; nell'immagine in alto non è stata usata la proprietà fullScreenSourceRect e di conseguenza tutto il filmato SWF è stato portato a schermo intero, mentre in basso vediamo il risultato della funzione vista poco fa; questa feature permette di creare player a schermo intero piuttosto versatili dato che sarà possibile visualizzare solo l'area di nostro interesse.

Figura 6. Visualizzazione a schermo intero di tutto l'SWF (in alto) o solo del filmato MP4 (in basso), partendo dallo stesso file SWF
Screenshot dei due filmati SWF a confronto

Modalità a schermo intero con Actionscript 3

In Actionscript 3 il codice cambia leggermente, come possiamo vedere nella funzione riportata di seguito:

Listato 6.2. Visualizza il filmato a schermo intero in AS3

function schermoIntero(evt:Event){
  var area:Rectangle = new Rectangle(player.x, player.y, player.width, player.height);
  stage["fullScreenSourceRect"] = area;
  if(stage.displayState == StageDisplayState.NORMAL){
    stage.displayState = StageDisplayState.FULL_SCREEN;
  }
  else{
    stage.displayState = StageDisplayState.NORMAL;
  }
}

Oltre alla rimozione dell'undescore dalle proprietà x,y, width e height possiamo vedere che il displayState non viene più memorizzato come stringa, ma va confrontato con delle costanti contenute nell'oggetto StageDisplayState. Altra modifica minima ma fondamentale: il riferimento per lo stage è stage (minuscolo) e non Stage (maiuscolo) come avveniva in Actionscript 2.

Poiché Actionscript 3 basa l'interazione con l'utente esclusivamente sugli eventi, per associare l'esecuzione della funzione schermoIntero al click del mouse sul filmato il codice sarà:

stage.addEventListener(MouseEvent.MOUSE_DOWN,schermoIntero)

Una novità del Flash Player 9,0,115,0 è la possibilità di sfruttare l'accelerazione hardware per i file e questa feature si rivela l'ideale per la fruizione dei video in alta definizione, specialmente se visti a tutto schermo dato che possono avere dimensioni e complessità piuttosto elevate. È possibile attivare o disattivare l'accelerazione hardware dalle impostazioni del Flash Player (click destro su un filmato SWF -> Impostazioni).

Figura 7. Impostazione dell'accelerazione hardware per il Flash Player
Screenshot delle impostazioni

Nota: prima di mandare un filmato a pieno schermo è assolutamente consigliabile impostare l'oggetto che lo contiene alle medesime dimensioni del video originale, questo perché il Flash Player va a operare il ridimensionamento sugli attuali contenuti del file SWF e non valuta la risoluzione originale del file esterno: di conseguenza andare a scalare un movieclip dove il video è visualizzato a risoluzione ridotta provoca una peggiore qualità. Nell'immagine seguente possiamo notare la differenza tra un filmato mandato a tutto schermo senza prima adattare il player alla risoluzione originale del video (sopra) e lo stesso SWF mandato a schermo intero previo adattamento del player alle dimensioni del video (sotto). Come abbiamo visto in precedenza è molto semplice portare il player alle dimensioni originali del video sfruttando i MetaData.

Figura 8. Confronto tra un video mandato in fullscreen senza adattamento delle dimensioni al video originale (sopra) e con l'adattamento al video originale (sotto).
Screenshot dei due filmati SWF a confronto


Ti consigliamo anche