« Creare una slideshow con Flex | Index | Richiamare librerie esterne in Air e Flex »

um_minilogo.gif Cerchi articoli, tutorial e guide su Photoshop CS3, Flash CS3, Premiere Pro CS3, Actionscript 3, Flex 3 e Adobe AIR, Java e Microsoft Silverlight ?
Scarica gratis UserMatter, il magazine che tratta la User Experience. Nell'ultimo numero trovi anche: Introduzione alla programmazione orientata agli oggetti, Salvare le immagini per il web con una mappatura Alpha

Full Screen in Flash CS3 e ActionScript 3.0

Ottavo e ultimo appuntamento con le principali novità di Actionscript 3. Riepiloghiamo velocemente i precedenti approfondimenti: display list, uso dei componenti, classe loader, XML E4X, creare una classe, classe Animator e color picker

In questo articolo esploreremo brevemente le nuove funzionalità offerte da Flash CS3 per abilitare la modalità FullScreen utilizzando ActionScript 3.0.

LCD.jpg

Come vedrete dalla demo on-line, utilizzeremo un pulsante per attivare e disattivare la modalità a schermo intero.
Una volta abilitata la modalità FullScreen, Flash visualizzerà automaticamente per qualche secondo la frase “Premere Esc per uscire dalla modalità a schermo intero" e sarà quindi possibile tornare alla visualizzazione classica cliccando nuovamente sul pulsante o premendo appunto il tasto della tastiera “ESC”

PREPARARE LO STAGE DI FLASH CS 3

Per cominciare create un nuovo file Flash File (ActionScript 3.0) e trascinate sullo Stage un componente Button assegnando come nome istanza fullScreen_btn e come label "Attiva FULLSCREEN”.

FL_timeline.jpg



IL CODICE ACTIONSCRIPT 3.0
Posizionate il seguente codice sul primo frame del file Flash.

// Importiamo le classi necessarie al funzionamento dello scriptimport flash.display.Stage;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.FullScreenEvent;


// Memorizziamo lo status del FULLSCREEN:
// false = NORMAL(default) | true = FULL SCREEN

var FullScreenStatus:Boolean;


function init():void
{
// Impostiamo le proprietà dello Stage (NO_SCALE allineato in alto a sinistra)
var swfStage:Stage = fullScreen_btn.stage;
swfStage.scaleMode = StageScaleMode.NO_SCALE;
swfStage.align = StageAlign.TOP_LEFT;
}
init()




// ==============================================
// LISTENER e EVENT HANDLER per la modalità FullScreen:
// ==============================================

function fullScreenRedraw(event:FullScreenEvent):void
{
// Modalità FullScreen Attivata
if (event.fullScreen)
{
fullScreen_btn.label = "Disattiva FULLSCREEN";
FullScreenStatus = true;
}

// Modalità FullScreen Disattivata else
{
fullScreen_btn.label = "Attiva FULLSCREEN";
FullScreenStatus = false;
}

}

// Registriamo un listener per la modalità FULLSCREEN:
// richiamato ogni volta che la variabile FULL_SCREEN viene modificata
fullScreen_btn.stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenRedraw);


// =======================================
// Pulsante per attivare o meno la modalità FULLSCREEN
// =======================================

function changeFullScreenStatus(e:MouseEvent):void
{

if(FullScreenStatus)
fullScreen_btn.stage.displayState = StageDisplayState.NORMAL;
else
fullScreen_btn.stage.displayState = StageDisplayState.FULL_SCREEN;

}
fullScreen_btn.addEventListener(MouseEvent.CLICK, changeFullScreenStatus)




PUBBLICARE IL FILE

Pubblicate il file selezionando il menu FILE -> Publish Setting e cliccando sul pulsante PUBLISH, verificando però che siano selezionate le opzioni Flash e HTML nella scheda Formats



L’ATTRIBUTO HTML ‘allowfullscreen’

Se avete testato lo script da Flash, avrete notato che la modalità FullScreen non funziona
in quanto è possibile utilizzarla solo all’interno di un browser come Internet Explorer o Firefox. Dovrete perciò effettuare una piccola modifica al file HTML che contiene l’swf.

E’ necessario settare a true l’attributo allowfullscreen nei tag HTML inerenti all’swf incluso, ovvero nell’OBJECT, nell’EMBED e nei parametri passati alla funzione AC_FL_RunContent.

Per effettuare questa operazione in modo agevole consiglio di aprire il file HTML generato da Flash in Dreamweaver 8 o superiore, selezionare con il mouse l’oggetto SWF e aprire il pannello PARAMETERS cliccando in basso sull’apposito pulsante posto nella barra delle proprietà (vedi immagine seguente).

DW_Parameters.jpg

Settare infine la proprietà allowFullScreen a true.

Aprite il file HTML da un qualunque browser e verificate il funzionamento.

TrackBack

TrackBack URL per questo post:
http://blog.augitaly.com/mt-tb.cgi/343

Commenti (10)

nicola:

come posso fare per automatizzare questa funzione di fullscreen?
ho provato a mettere la funzione direttamente su frame e/o caricarla tramite l'evento load per i clip filmato, ma non va.
mi sapete aiutare in merito?

Fabio:

Purtroppo non puoi. Dev'essere abbinata ad un pulsante.
Forse c'è qualche escamotage ma dovrei fare qualche test (anche nella reference di Flex/Flash CS3 ricordo che c'è scritto esplicitamente che non si puo')

manu:

a me dà questo errore:
SecurityError: Error #2152: Modalità a schermo intero non consentita.
at flash.display::Stage/set displayState()
at prova_fla::MainTimeline/changeFullScreenStatus()

sapete di cosa si tratta?

Anonymous:

Probabilmente non hai settato correttamente gli attributi HTML relativi ai permessi sulla modalità fullscreen.
Se infatti provi lo script direttamente da Flex riceverai sempre questo errore. Devi seguire le istruzioni che ho segnalato in questo articolo e creare un nuovo html.

Se hai problemi scrivi pure :)

MagiOAtru:

ottimo tutorial ma ho un problema quando clicco sul pulsante "attiva fullScreen" diventa full screen ma non cambia il pulsante in "disattiva Fullscreen" ( come nel demo)secondo voi qual'è il problema?? c'è da creare un altro pulsante?? o il codice va sistemato?? grazie

Magio Atru

Stefano:

ragazzi, visto ke ho solo flash 8, nn è ke spiegate come modificare il codice html manualmente?

Premetto che sono un principiante di flash e programmazione in generale, provo da un giorno a fare questo tutorial ma il compiler errors mi da sempre:
A type identifier is expected after the ':'.

rajan:

Grazie del tutorial ma ho problemi a farlo andare con opera...
nessuno ha riscontrato lo stesso problema?
Ciao

Luciano:

ho provato a inserire il pulsante "Disattiva FULLSCREEN" con istanza "fullScreen_btn" ma non funziona...
dove sbaglio ?

Luciano:

per il pulsante "Disattiva FULLSCREEN" come faccio, visto che non compare ?

Invia un commento

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)