Fullscreen Mode

- Letture: 3.844

Di recente ho visto dei siti in flash proiettati a tutto schermo, non intendo nel browser, ma senza avere barre varie, nè limiti di dimensione, se non quelli imposti dallo schermo stesso.

La versione del Flash Player da cui è possibile avere questa funzione è la 9,0,28,0.
Per
verificare la vostra versione, vi basta andare sulla pagina di Adobe riguardo le informazioni del Player, oppure cliccare col tasto destro sul filmato e selezionare Informazioni Su Adobe Flash Player, si aprirà una pagina indicando la vostra versione.

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), apriamo il file Stage.as.

Procediamo con ordine:

Andiamo a inserire la stringa evidenziata, che ci permetterà di gestire il fullscreen tramite AS, e in flash la nuova variabile può assumere due valori, riconosciuti dal player, “fullScreen” e “normal“:

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;
}

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  ed  (solo  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" mce_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 (il menu apribile con il tasto destro sul filmato .swf)

menu_full.jpg

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;

Ricordo che le funzioni Full Screen Mode possono essere richiamate anche da semplici pulsanti in questo modo:

  • Abilita il FullScreen 

on (release) {
Stage.displayState = "fullScreen";
}

  • Disabilita il FullScreen 

on (release) {
Stage.displayState = "normal";
}

Un ringraziamento speciale a and80

Scarica il sorgente
Guarda il Tutorial

Stratega, Docente, Speaker con più di 12 anni di esperienza in strategie creative multicanale. Oggi sono Managing Partner di ThinkingHat, Innovation Studio specializzato in tecnologie emergenti per aziende e brand audaci.

40 Commenti

  1. Pingback: Neteye - FWA « »JuliusDesign«

  2. **Errore** Scena=schede, livello=full screen, fotogramma=1:Linea 4: Nessuna proprietà denominata ‘displayState’.
    Stage.displayState = “fullScreen”;

    **Errore** Scena=schede, livello=full screen, fotogramma=1:Linea 7: Nessuna proprietà denominata ‘displayState’.
    Stage.displayState = “normal”;

    Totale errori ActionScript: 2 Errori segnalati: 2

    perchè questo errore?

  3. Ciao ciro,

    possibili errori:

    1. Non avere Flash8
    2. Versione FlashPlayer non 9,0,28,0
    3. Non aver aggiunto la stringa di codice in sage.as

  4. 2. Versione FlashPlayer non 9,0,28,0
    3. Non aver aggiunto la stringa di codice in stage.as

    erano entrambi grazie dell’aiuto julius!

  5. ciao julius scusami se ti disturbo di nuovo.

    ma funge il fullscreen ma il problema nasce quando tengo la modalità fullscreen i campi di testo input del mio form mail nn sono editabili come mai?

    si può risolvere il problema?

  6. anch’io ho seguito il tuo consiglio per il fullscreen, ma come a ciro, il form mail non funziona e nemmeno il rollOver sui pulsanti, sia nella _root che in altri mc…In modalità normale funziona tutto benissimo!
    Non capisco nemmeno io perchè!!!

  7. Grazie mille per questo semplicissimo tutorial..ora però avrei una domanda..
    Se ad esempio voglio costruire una galleria immagini in flash e poi a scelta dell’utente passare in modalità fullscreen le immagini subiscono un drastico calo di qualità poichè flash le ridimensiona!!!…come si può fare per evitare questo problema? Si può fare in modo che flash non ridimensioni le immagini??
    Grazie mille

  8. Ciao Julius ti ricordi sono gaten di html.it be volevo dirti siccome ho cambiato contatto messanger aggiungimi ok te l’ho scritto come email ti ringrazioe Ciao…Gaetano.

  9. Anche io ho lo stesso problema con il form fatto in flash!!!
    qualcuno è riuscito a risolverlo???
    HEEELP!!!

  10. ragazzi cercando un po ho trovato il motivo…è solo questione di sicurezza, è una cosa che non può essere aggirata…visto che a schermo intero non viene visualizzato assolutamente niente a parte le pagine web, quindi nessuna taskbar, barra degli indirizzi ecc..sarebbe facile copiare un sito (ad esempio quello delle poste) e tramite lo schermo intero un utente medio non sarebbe in grado di capire che quello che sta visitando non è il vero sito, ma solo una copia. in questo modo compilando dei campi ad esempio per fare il login invierebbe dei dati sensibili ai truffatori…per evitare questo tipo di problemi non è possibile compilare dei campi di testo in modalità fullscreen!! e da quanto ho letto la cosa resterà così!!!
    Se qualcuno ha trovato qualche soluzione fatelo sapere!!

  11. ciao,
    ho provato il tutorial ma non va, ho cambiato il file “stage.as” e ho anche aggiornato il flash player, anche se lo era già, ma lo stesso nn va, mi stampa questo errore.

    **Errore** Scena=Scene 1, livello=Layer 1, fotogramma=1:Linea 4: Nessuna proprietà denominata ‘displayState’.
    Stage.displayState = “fullScreen”;

    **Errore** Scena=Scene 1, livello=Layer 1, fotogramma=1:Linea 7: Nessuna proprietà denominata ‘displayState’.
    Stage.displayState = “normal”;

    Totale errori ActionScript: 2 Errori segnalati: 2

  12. sorpresina

    Io ho trovato anche questo per avere il fullscreen da da un filamto flash che simula una vera e propria applicazione a schermo intero

    http://www.bezzmedia.com/swfspot/tutorials/intermediate/True_Fullscreen_Flash_Mode

    ma si possono usare anche altri metodi visti sul tuo sito

    L’unica cosa che servirebbe a me sarebbe caricare un filmato (es loadMovie) quando la modalita’ schermo interno torna a normale (premendo ESC) Tutto in ActionScript 2.
    Avete mica un’idea di come fare?

    Con eventi sul tasto ESCAPE non funziona, bisognerebbe trovare il metodo di intercettare il fatto che da schermo intero torna a schermo normale.

  13. Per capire se sei fullscreen mode probabilemente vi è una funzione ma ora non mi viene in mente

    Potresti comunque dichiarare una variabile booleana ovvero 1 o 0 true o false per intenderci da inserire nelle funzioni che ti permettono il fullscreen mode…

    E poi utilizzare gli IF, se la mia variabile è uguale a 1 sono in fullscreen altrimenti…

  14. sorpresina

    io avevo provato cosi’ ma non funziona
    onClipEvent(enterFrame)
    {
    if(Stage[“displayState”]==”fullScreen”)
    {
    loadMovie(“2008.swf”,_root.contenuto);
    _root.contenuto._x=0;
    _root.contenuto._y=0;
    }

    elseif (_global.pippo==”galleria”) {
    loadMovie(“italiano2008.swf”,_root.contenuto)
    }
    }

    avevo povato anche a mettere nell’else if
    (Stage[“displayState”]==”normal”) && (_global.pippo==”galleria”)

    e pure (diverso da)
    if(Stage[“displayState”]!=”fullscreen”)

    ma nessuno di questi metodi sembra funzionare

  15. sorpresina

    a parte qualche dimenticanza di punto e virgola la prima parte funziona
    cioe se e’ a pieno schermo carica 2008.swf ma non riesco a fargli intercettare ne’ la variabile ne’ il fatto che non e’ piu’ a pieno schermo

  16. Ma tutto ciò lo fai per caricare un clip esterno in fullscreenmode?

    Secondo me non ne vale la pena di andarsi a incasinare più di tanto…

    Ok provarci ma ci sono altre soluzioni come i classici fullscreen a piena pagina meno invasivi e “pericolosi” (ti ricordo che la modalita fullscreenmode è vista solo da quelli con plugin flash 9,0,28,0 e sai quanto me che ce molta gente definita “utonto” che magari non ha attivato l’aggiornamento o altro)

    Non userei questa tecnica per avere un effetto ingrandisci foto o qualcosa del genere…

    Va bè questo è un mio parere…

  17. sorpresina

    ma ad andare a full screen caricando un clip esterno ci riesco
    Quello che non riesco e’ ricaricarne un altro quando torno alla modalita’ normale

    poi all’ultimora faccio un target _blank ed evito anche il blocco popup dell fullscreen fatto con javascript

  18. come faccio a “bloccare” un swf in fullscreen? Cioè se clicco un link nel sito (che va in _blank, o cmq fuori dal swf) vorrei che fullscreen rimanesse,invece si chiude!
    help me plsssss

  19. mi spiego meglio,
    vorrei bloccare il mio sito swf in fullscreen, cioè vorrei che quando un visitatore entra, apre i collegamenti es a siti preferiti (che si aprono nel browser,non nel movie del sito) non si disabiliti il fullscreen, cosa che regolarmente succede.

  20. Ho risolto il problema che avevo nell’intercettare il tasto ESC che non mi andava
    mettendo nel body:
    onLoad=”bebrasil.focus();”

    dove bebrasil e’ il nome del mio swf, funziona su ie safari e firefox in inglese; su firefox in italiano non va
    Non so se perche’ non riconosca la funzione focus(); ma forse credo sia un’opzione dio sciurezza del browser che in italiano c’e’ ed in inglese no

  21. @Fonzie che io sappia è inevitabile che si chiudi in quanto stai interagendo con il browser, ma magari mi sbaglio ora indago

    @sorpresina ottimo ;)

  22. Ciao, ho un problema simile ma nenache tanto. Speravo che l’applicazione mi potesse essere utile ma ahimè non ha funzionato.
    Devo creare un exe con delle slide in flash che a un certo punto
    lanciano un video (flv o avi che sia…li ho provati entrambi) per poi
    ritornare a slidare fino alla loro conclusione ed uscita. Il problema è creando un proiettore che in ” fullscreen” da fscommand mi porta in proporzione i file distrugge la qualità del video. Ho testato anche zinc ma anche se il video si interlaccia perfettamente purtroppo non riconosce la differenza tra un 16:9 e un 4:3 cosi sminkia comunque le proporzioni di tutta la presentazione. qualcunoa qualche suggerimento?

  23. E’ normale che il video in fulscreen perda la qualità in quanto venendo ingrandito le dimensioni cambiano

  24. Puoi farci vedere un esempio del tuo page flip?
    La cosa deve partire a pieno schermo o c’e’ un pulsante?
    TI da qualche errore o non fa ssolutamente niente?

  25. Allora ho provato prendi il menu di navigazione aggiungi un bottone e lo chiami “fullbtn” ci fai l’iconcina dello schermo se vuoi;
    Poi nel primo fotogramma del movieclip pageNav
    aggiungi prima delle altre azioni questa parte di codice:

    //Function to toggle between fullscreen and normal size
    //the toggle fullscreen button calls this function when pressed
    function toggleFullScreen(){
    //if normal size, go to fullscreen, else go to normal size
    if(Stage[“displayState”]==”normal”){
    Stage[“displayState”]=”fullScreen”;
    Stage.addListener(resizeListener);
    }else{
    Stage[“displayState”]=”normal”;
    }
    }
    //Create a listener for each time the Stage is resized
    var resizeListener:Object = new Object();
    //Called each time the stage is resized
    resizeListener.onResize = function () {
    //Move the button to the center of the screen
    toggleFullScreenButton._x=Stage.width/2;
    toggleFullScreenButton._y=Stage.height/2;
    }
    //Add the listener to Stage
    Stage.addListener(resizeListener);
    fullbtn.onRelease = function() {
    toggleFullScreen();
    }

    dopo dovresti avere le azioni degli altri pulsanti:

    prevBtn.onRelease = function() {
    var prevPage = _parent.offsetPages(_parent.page-1,_parent.removedPages);
    if(prevPage>=-1) _parent.gotoPage(prevPage);
    }
    ecc
    ecc

    spero sia servito ciao, emanuele

  26. in realta’ ti basta anche solo questo di codice

    function toggleFullScreen(){
    //if normal size, go to fullscreen, else go to normal size
    if(Stage[“displayState”]==”normal”){
    Stage[“displayState”]=”fullScreen”;
    Stage.addListener(resizeListener);
    }else{
    Stage[“displayState”]=”normal”;
    }
    }
    // assegno al bottone fullbtn l’azione di andare fullscreen
    fullbtn.onRelease = function() {
    toggleFullScreen();
    }

  27. Antonello

    Grazie e mitico Emanuele (sorpresina), funziona!
    Ma se volessi ora ingradire l’area di ogni pagina del pageflip, su quale ‘parte’ devo agire? Scusa Julius se il commento probabilmente si riferisce al PageFlip.
    Saluti

  28. ciao Julius, davvero interessante. Non riesco pero’ ad integrare il tuo codice html nella mia pagina … io credo sia un conflitto tra il tuo ed il mio codice presente

    var so = new SWFObject(“site_ita.swf”, “mymovie”, “100%”, “100%”, “7”, “”);
    so.addParam(“quality”, “best”);

    so.addParam(“scale”, “noscale”);
    so.write(“flashcontent”);

    il flash non e’ un problema perche’ caricato dalla tua pagina va tutto ok…. ho provato anche ad utilizzare la tua pagina (cosi’ utilizzo solo il tuo codice) pero’ impostando il movie al 100% non mi esce alla fine effettivamente a tutta pagina … ovvero all’apertura dell’html vedo una striscia bianca nella parte inferiore….

    grazie in anticipo!

  29. ciao Julius

    solamente RINGRAZIARTI!!! come siempre un’ottima risorsa messa a disposizione > G R A N D E < Me la sono spulciata e provata, grazie ancora mitico Jiulius_

    ciao

  30. ciao Julius!Il fullsceern funziona correttamente,ma solo con IE con altri browser (tipo mozzilla…)non funziona come mai?

  31. ciao ragazzi,
    avrei un probelma con un sito che ho realizzato in fullscreen.
    quando sono in “fullscreen” e premo il tasto esc torna in modalità “normal” ma mi rimane il tasto exit_fullscreen visibile e non mi ricompare il tasto fullscreen che avevo reso non visible,

    COME POSSO RISOLVERE???

    aspetto vostre risp ciao a tutti

  32. ciao Julius,
    ho inserito@ Julius:
    non riesce a riconoscere fullScreen e normal:
    **Errore** Scena=Scene 1, livello=Layer 1, fotogramma=1:Linea 4: Nessuna proprietà denominata ‘displayState’.
    Stage.displayState = “fullScreen”;

    **Errore** Scena=Scene 1, livello=Layer 1, fotogramma=1:Linea 7: Nessuna proprietà denominata ‘displayState’.
    Stage.displayState = “normal”;

    Totale errori ActionScript: 2 Errori segnalati: 2

    Tu ha scritto:
    1. Non avere Flash8
    2. Versione FlashPlayer non 9,0,28,0
    3. Non aver aggiunto la stringa di codice in sage.as

    Ma non riesco a capire…potresti essere più chiaro?
    Grazie

  33. Veronica80

    Ma non c’è proprio modo di lanciare il fullscreen in automatico senza cliccare sui bottoni? :(

Commenti