New Flash Fullscreen Mode

Inserito il 23-06-2007

Su segnalazione di un utente del forum di html.it, Julius86, riporto una novità interessante sulla gestione dei filmati flash su browser. In pratica una nuova funzione del flash player consente di mandare in fullscreen il filmato flash presente sula pagina, senza barre varie, nè limiti di dimensione, se non quelli imposti dallo schermo stesso; la versione di partenza da cui è possibile avere questa funzione è la 9,0,28,0. Il modo di operare per ottenere questa funzione è relativamente semplice, ma bisogna fare attenzione ai passaggi da effettuare perchè bisogna agire direttamente sulla classe Stage definita in Flash 8, nella sua cartella di installazione, all'interno di First Run/Classes/FP8/Stage.as (su Windows con installazione standard e software in italiano, la cartella sarebbe C:\Programmi\Macromedia\Flash 8\en\First Run\Classes\FP8), aprendo il file Stage.as troverete questa situazione

//****************************************************************************
// ActionScript Standard Library
// Stage object 
//****************************************************************************
intrinsic class Stage
{
	static var displayState:String;
	static var align:String;
	static var height:Number;
	static var scaleMode:String;
	static var showMenu:Boolean;
	static var width:Number;
	static function addListener(listener:Object):Void;
	static function removeListener(listener:Object):Boolean;
}

La parte marcata in blu/grassetto è quella che bisogna aggiungere per ottenere la gestione del fullscreen tramite AS, e in flash la nuova variabile può assumere due valori, riconosciuti dal player e decisamente esplicativi, "fullScreen" e "normal".

Teniamo comunque ben presente una cosa, il fullscreen funziona solo sul browser e non in "Prova filmato", infatti per essere completa, la gestione del fullscreen ha bisogno di essere "accettata" dal browser, e lo si può fare aggiungendo un nuovo parametro nei tags <object> ed <embed> (solo <object> nel caso si utilizzi codice HTML valido W3C), il parametro si chiama "allowFullScreen" e genericamente funziona così:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
 codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0"
 width="600"  height="400" id="fullscreen" align="middle">
<param name="allowFullScreen" value="true" />
<param name="movie" value="fullscreen.swf" />
<param name="bgcolor" value="#333333" />
<embed src="fullscreen.swf" allowFullScreen="true" bgcolor="#333333" width="600" height="400"
 name="fullscreen" align="middle" type="application/x-shockwave-flash" 
 pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

Ecco un esempio pratico di utilizzo tramite AS, con il ContextMenu (tasto destro su swf)

var context:ContextMenu = new ContextMenu();
context.hideBuiltInItems();
var fullscreenHandler:Function = function () {
	Stage.displayState = "fullScreen";
};
var normalscreenHandler:Function = function () {
	Stage.displayState = "normal";
};
var cFull:ContextMenuItem = new ContextMenuItem("Show FullScreen", fullscreenHandler);
var cNormal:ContextMenuItem = new ContextMenuItem("Hide FullScreen", normalscreenHandler);
context.customItems.push(cFull);
context.customItems.push(cNormal);
this.menu = context;

E da questo link (download) è possibile scaricare l'esempio completo di html e fla.

Un'ultima nota, grazie ad AS è possibile gestire l'evento "onFullScreen" che consente di ottenere una notifica ogni qualvolta va in fullscreen o torna normale. A voi, saluti.