La modalità a schermo intero consente di impostare lo stage di un filmato in modo che occupi l'intero monitor senza menu o bordi del contenitore. La proprietà
displayState
della classe Stage consente di attivare e disattivare la modalità a schermo intero per un file SWF. La proprietà
displayState
può essere impostata su uno dei valori definiti dalle costanti nella classe flash.display.StageDisplayState. Per attivare la modalità a schermo intero, impostate la proprietà
displayState
su
StageDisplayState.FULL_SCREEN
:
stage.displayState = StageDisplayState.FULL_SCREEN;
Per attivare la modalità interattiva a schermo intero (novità di Flash Player 11.3), impostate la proprietà
displayState
su
StageDisplayState.FULL_SCREEN_INTERACTIVE
:
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
In Flash Player, la modalità a schermo intero può essere avviata mediante ActionScript in risposta a un clic del mouse (anche con il pulsante destro) o alla pressione di un tasto. Il contenuto AIR in esecuzione nella funzione di sicurezza sandbox dell'applicazione non richiede il passaggio alla modalità a schermo intero in risposta a un'operazione dell'utente.
Per disattivare la modalità a schermo intero, impostate la proprietà
displayState
su
StageDisplayState.NORMAL
.
stage.displayState = StageDisplayState.NORMAL;
Un utente può inoltre scegliere di uscire dalla modalità a schermo intero spostando lo stato attivo su un'altra finestra oppure utilizzando una delle diverse combinazioni di tasti: tasto Esc (tutte le piattaforme), Ctrl-W (Windows), Command-W (Mac) o Alt-F4 (Windows).
Attivazione della modalità a schermo intero in Flash Player
Per attivare la modalità a schermo intero per un file SWF incorporato in una pagina HTML, il codice HTML necessario per incorporare Flash Player deve includere un tag
param
e un attributo
embed
con name
allowFullScreen
e value
true
, come indicato di seguito:
<object>
...
<param name="allowFullScreen" value="true" />
<embed ... allowFullScreen="true" />
</object>
Nello strumento di creazione di Flash, selezionate File -> Impostazioni di pubblicazione e quindi scegliete il modello Solo Flash - Consenti schermo intero nella scheda HTML della finestra di dialogo Impostazioni di pubblicazione.
In Flex accertatevi che il modello HTML includa i tag
<object>
e
<embed>
che supportano lo schermo intero.
Se utilizzate JavaScript in una pagina Web per generare i tag di incorporamento SWF, dovete modificare il codice JavaScript aggiungendo l'attributo/tag
allowFullScreen param
. Se, ad esempio, la pagina HTML impiega la funzione
AC_FL_RunContent()
(utilizzata dalle pagine HTML generate sia da Flash Professional e Flash Builder), dovete aggiungere il parametro
allowFullScreen
alla chiamata di funzione, come indicato di seguito:
AC_FL_RunContent(
...
'allowFullScreen','true',
...
); //end AC code
Ciò non è applicabile ai file SWF eseguiti nel lettore autonomo Flash Player.
Nota:
se impostate la Modalità finestra (wmode in HTML) su Opaca senza finestra (opaque) o Trasparente senza finestra (transparent), la finestra a schermo intero è sempre opaca
Sono inoltre presenti restrizioni di sicurezza per quanto riguarda l'uso della modalità a schermo intero con Flash Player in un browser. Queste restrizioni sono descritte in
Sicurezza
.
Attivazione della modalità interattiva a schermo intero in Flash Player 11.3 e versioni successive
Flash Player 11.3 e versioni successive supportano la modalità interattiva a schermo intero, che abilita il supporto completo per tutti i tipi di tastiera (con l'eccezione del tasto
Esc
, che serve per uscire dalla modalità interattiva a schermo intero). La modalità interattiva a schermo intero è utile per il gaming (ad esempio per abilitare la funzione di chat in un gioco multi-player o i controlli tastiera WASD in un gioco con sparatorie in prima persona).
Per attivare la modalità interattiva a schermo intero per un file SWF incorporato in una pagina HTML, il codice HTML necessario per incorporare Flash Player deve includere un tag
param
e un attributo
embed
con name
allowFullScreenInteractive
e value
true
, come indicato di seguito:
<object>
...
<param name="allowFullScreenInteractive" value="true" />
<embed ... allowFullScreenInteractive="true" />
</object>
Nello strumento di creazione di Flash, selezionate File -> Impostazioni di pubblicazione e quindi scegliete il modello Solo Flash - Consenti schermo intero interattivo nella scheda HTML della finestra di dialogo Impostazioni di pubblicazione.
In Flash Builder e Flex, accertatevi che il modello HTML includa i tag
<object>
e
<embed>
, che supportano la modalità interattiva a schermo intero.
Se utilizzate JavaScript in una pagina Web per generare i tag di incorporamento SWF, dovete modificare il codice JavaScript aggiungendo l'attributo/tag
allowFullScreenInteractive param
. Se, ad esempio, la pagina HTML impiega la funzione
AC_FL_RunContent()
(utilizzata dalle pagine HTML generate sia da Flash Professional e Flash Builder), dovete aggiungere il parametro
allowFullScreenInteractive
alla chiamata di funzione, come indicato di seguito:
AC_FL_RunContent(
...
'allowFullScreenInteractive','true',
...
); //end AC code
Ciò non è applicabile ai file SWF eseguiti nel lettore autonomo Flash Player.
Dimensione e modifica in scala dello stage a schermo intero
Le proprietà
Stage.fullScreenHeight
e
Stage.fullScreenWidth
restituiscono l'altezza e la larghezza del monitor utilizzato quando si passa alle dimensioni a schermo intero, se questo stato viene attivato immediatamente. Questi valori potrebbero essere errati se l'utente ha la possibilità di spostare il browser da un monitor a un altro dopo il recupero dei valori, ma prima dell'attivazione della modalità a schermo intero. Se recuperate i valori nello stesso gestore di eventi in cui avete impostato la proprietà
Stage.displayState
su
StageDisplayState.FULL_SCREEN
, i valori sono corretti. Per gli utenti con più monitor il contenuto del file SWF si espande fino alle dimensioni di un solo monitor. In Flash Player e AIR viene utilizzata una metrica per determinare quale monitor contiene la porzione più grande del file SWF, quindi viene utilizzato tale monitor per la modalità a schermo intero. Le proprietà fullScreenHeight e fullScreenWidth riflettono solo le dimensioni del monitor utilizzato per la modalità a schermo intero. Per ulteriori informazioni, vedete
Stage.fullScreenHeight
e
Stage.fullScreenWidth
nella
Guida di riferimento di Adobe ActionScript 3.0 per la piattaforma Adobe Flash
.
Il comportamento di modifica in scala dello stage per la modalità a schermo intero è identico nella modalità normale; la modifica in scala viene controllata dalla proprietà
scaleMode
della classe Stage. Se la proprietà
scaleMode
è impostata su
StageScaleMode.NO_SCALE
, le proprietà
stageWidth
e
stageHeight
dello stage vengono modificate per riflettere le dimensioni dell'area dello schermo occupate dal file SWF (in questo caso, l'intero schermo); in caso di visualizzazione nel browser, l'impostazione viene controllata dal relativo parametro HTML.
È possibile utilizzare l'evento
fullScreen
della classe Stage per rilevare se la modalità a schermo intero è attivata o disattivata e rispondere di conseguenza. Potrebbe essere necessario, ad esempio, riposizionare, aggiungere o rimuovere elementi dallo schermo quando si attiva o disattiva la modalità a schermo intero, come nell'esempio seguente:
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);
Come illustrato dal codice, l'oggetto evento dell'evento
fullScreen
è un'istanza della classe flash.events.FullScreenEvent, che include una proprietà
fullScreen
che indica se la modalità a schermo intero è attiva (
true
) o meno (
false
).
Supporto della tastiera nella modalità a schermo intero
Quando Flash Player viene eseguito in un browser, tutto il codice ActionScript relativo alla tastiera, ad esempio eventi della tastiera e immissione di testo nelle istanze TextField, è disattivato in modalità a schermo intero. Fanno eccezione i tasti seguenti, che sono attivi:
-
determinati tasti non associati a lettere o numeri, nello specifico i tasti freccia, la barra spaziatrice e il tasto Tab;
-
i tasti di scelta rapida che disattivano la modalità a schermo intero, ovvero Esc (Windows e Mac), Ctrl-W (Windows), Command-W (Mac) e Alt-F4.
Queste limitazioni non si applicano al contenuto SWF in esecuzione nel lettore autonomo Flash Player o in AIR. AIR supporta una modalità interattiva a schermo intero che consente l'input dalla tastiera.
Supporto del mouse nella modalità a schermo intero
Per impostazione predefinita, gli eventi del mouse nella modalità a schermo intero si comportano come nella modalità non a schermo intero. Tuttavia, in modalità a schermo intero è possibile impostare la proprietà
Stage.mouseLock
in modo da abilitare il blocco del mouse. Il blocco del mouse disattiva il cursore e abilita il movimento svincolato del mouse.
Nota:
potete abilitare il blocco del mouse in modalità a schermo intero solo per le applicazioni desktop. Se lo impostate in applicazioni che non operano a schermo intero, ad esempio nelle applicazioni per dispositivi mobili, viene generata un'eccezione.
Il blocco del mouse viene disattivato e il cursore viene reso nuovamente visibile quando:
-
L'utente esce dalla modalità a schermo intero premendo il tasto Esc (tutte le piattaforme), Control-W (Windows), Comando-W (Mac) o Alt-F4 (Windows).
-
L'applicazione cessa di essere l'elemento attivo.
-
È visibile una qualsiasi interfaccia di impostazioni, comprese tutte le finestre di dialogo relative alla privacy.
-
È visualizzata una finestra di dialogo nativa, ad esempio una finestra per il caricamento di file.
Gli eventi associati al movimento del mouse, ad esempio
mouseMove
, utilizzano la classe MouseEvent per rappresentare l'oggetto evento. Quando il blocco del mouse è disattivato, usate le proprietà
MouseEvent.localX
e
MouseEvent.localY
per determinare la posizione del mouse. Quando il blocco è attivo, usate invece le proprietà
MouseEvent.movementX
e
MouseEvent.movementY
. Le proprietà
movementX
e
movementY
contengono i cambiamenti di posizione del mouse dall'ultimo evento, anziché le coordinate assolute della posizione del mouse.
Modifica in scala tramite hardware nella modalità a schermo intero
Potete utilizzare la proprietà
fullScreenSourceRect
della classe Stage per impostare Flash Player o AIR affinché modifichino in scala un'area specifica dello stage alla modalità a schermo intero. In Flash Player e AIR viene eseguita la modifica in scala tramite hardware, se disponibile, mediante la scheda grafica e video del computer dell'utente che permette in genere di visualizzare il contenuto in modo più rapido rispetto alla modifica in scala tramite software.
Per sfruttare la possibilità di applicare la modifica in scala tramite l'hardware, è necessario impostare tutto lo stage, o parte di esso, sulla modalità a schermo intero. Il seguente codice ActionScript 3.0 imposta tutto lo stage sulla modalità a schermo intero:
import flash.geom.*;
{
stage.fullScreenSourceRect = new Rectangle(0,0,320,240);
stage.displayState = StageDisplayState.FULL_SCREEN;
}
Quando questa proprietà è impostata su un rettangolo valido e la proprietà
displayState
è impostata sulla modalità a schermo intero, Flash Player e AIR modificano in scala l'area specificata. La dimensione effettiva dello stage in pixel in ActionScript non varia. Flash Player e AIR applicano un limite minimo per la dimensione del rettangolo che contiene il messaggio standard “Premere Esc per uscire dalla modalità a schermo intero”. Questo limite si aggira in genere intorno a 260 x 30 pixel, ma può variare in base al tipo di piattaforma e alla versione di Flash Player.
La proprietà
fullScreenSourceRect
può essere impostata solo se Flash Player o AIR non sono in modalità a schermo intero. Per utilizzare questa proprietà correttamente, impostate prima questa proprietà e quindi impostate la proprietà
displayState
sulla modalità a schermo intero.
Per consentire la modifica in scala, impostate la proprietà
fullScreenSourceRect
su un oggetto Rectangle.
stage.fullScreenSourceRect = new Rectangle(0,0,320,240);
Per disattivare la modifica in scala, impostate la proprietà
fullScreenSourceRect
su
null
.
stage.fullScreenSourceRect = null;
Per avvalervi di tutte le funzionalità di accelerazione hardware con Flash Player, attivate l'accelerazione hardware tramite la finestra di dialogo delle impostazioni di Flash Player. Per caricare la finestra di dialogo, fate clic con il pulsante destro del mouse (Windows) o premete il tasto Ctrl + clic (Mac) all'interno del contenuto Flash Player nel browser. Selezionate la prima scheda Display e quindi la casella di controllo di abilitazione dell'accelerazione hardware.
Modalità finestra Diretta e Composizione GPU
Con Flash Player 10 sono state introdotte due nuove modalità finestra, Diretta e Composizione GPU, che potete attivare tramite le impostazioni di pubblicazione dello strumento di creazione di Flash. Queste modalità non sono supportate in AIR. Per sfruttare queste modalità, dovete attivare l'accelerazione hardware per Flash Player.
La modalità Diretta utilizza il percorso più veloce e diretto per visualizzare la grafica sullo schermo, facilitando la riproduzione video.
La Composizione GPU utilizza l'unità di elaborazione grafica della scheda video per accelerare la composizione. Per composizione video si intende il processo di sovrapposizione di più immagini per creare un'unica immagine video. Accelerando la composizione con il GPU è possibile migliorare le prestazioni di conversione YUV, correzione colore, rotazione o ridimensionamento e fusione. La conversione YUV fa riferimento alla conversione colore di segnali analogici compositi, utilizzati per la trasmissione, nel modello colore RGB (rosso, verde, blu) utilizzato da videocamere e display. L'utilizzo di GPU per accelerare la composizione riduce le esigenze di memoria e di calcolo che verrebbero altrimenti poste sulla CPU. Il risultato è anche una riproduzione più uniforme di video a definizione standard.
Prestate molta attenzione quando implementate queste modalità video. L'uso della composizione GPU può essere onerosa in termini di memoria e risorse di elaborazione. Le operazioni che non possono essere eseguite nella GPU (ad esempio, metodi di fusione, filtraggio, ritaglio o mascheratura), devono essere completate dal software. Adobe consiglia di limitarsi a un solo file SWF per pagina HTML quando si utilizzano queste modalità e di non abilitarle per i banner. La struttura Flash Test Movie non utilizza l'accelerazione hardware ma potete impiegarla tramite l'opzione Anteprima pubblicazione.
Poiché la frequenza di aggiornamento dello schermo massima è 60, è inutile impostare nel file SWF un valore superiore. L'impostazione di una frequenza fotogrammi compresa tra 50 e 55 determina fotogrammi saltati; una situazione che si può verificare ogni tanto per diversi motivi.
L'uso della modalità Diretta richiede Microsoft DirectX 9 con 128 MB di VRAM in Windows e OpenGL per Apple Macintosh, Mac OS X v10.2 o versione successiva. La Composizione GPU richiede il supporto di Microsoft DirectX 9 e Pixel Shader 2.0 in Windows con 128 MB di VRAM. In Mac OS X e Linux, la Composizione GPU richiede OpenGL 1.5 e diverse estensioni OpenGL (oggetto framebuffer, multitexture, oggetti shader, linguaggio shading, fragment shader).
Potete attivare le modalità di accelerazione
direct
e
gpu
per ogni singolo file SWF tramite la finestra di dialogo Impostazioni pubblicazione di Flash, utilizzando il menu Accelerazione hardware della scheda Flash. Se scegliete Nessuno, la modalità finestra viene ripristinata su
default
,
transparent
o
opaque
, come specificato nell'impostazione Modalità finestra nella scheda HTML.