Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 31 di 44
  • livello principiante
Indice lezioni

Intro e Cookies

Saltare l'animazione introduttiva alle visite successive tramite cookies
Saltare l'animazione introduttiva alle visite successive tramite cookies
Link copiato negli appunti

SCOPO

Saltare l'animazione introduttiva tramite l'utilizzo dei cookies

STRUMENTI

Metodi Javascript | LoadMovie | GotoFrame

METODO

I cookies

Oltre all'ActionScript, un modo per poter saltare il filmato introduttivo (o il preloader) di un sito in Flash è l'utilizzo dei cookies, i file di testo che vengono salvati nella cache del browser. Tramite alcune funzioni Javascript, è possibile scrivere un cookie, per recuperarlo successivamente: la presenza o meno di questo cookie, servirà a stabilire se la pagina sia già stata visitata, e se quindi il filmato introduttivo possa essere saltato.

Affronteremo il procedimento da tre punti di vista, uno per ogni sistema di utilizzo dell'intro: nei primi due casi, il filmato introduttivo e quello principale sono separati, nel terzo caso, le due animazioni sono contenute nello stesso filmato.

Le funzioni Javascript

Lo script va inserito tra i tag <head> della pagina html contenente il filmato: all'interno del tag <body> va invece inserito il richiamo alla funzione principale, invocata al caricamento della pagina:

<body onLoad="visita()">

Lo script è il seguente (con le variazioni dei tre casi):

<script language="JavaScript" type="text/javascript">

<!--

function scrivi(nome, valore, scadenza, percorso, dominio, sicurezza){

document.cookie = nome + "=" + escape (valore) +

((scadenza == null) ? "" : ("; expires=" + scadenza.toGMTString())) +

((percorso == null) ? "" : ("; path=" + percorso)) +

((dominio == null) ? "" : ("; domain=" + dominio)) +

((sicurezza == true) ? "; secure" : "");

}

function visita(){

var termine = new Date();

termine.setTime(termine.getTime() + (60 * 1000));

var sottostringa = "saltapreloader";

var stringa = document.cookie;

if(stringa.indexOf(sottostringa) != -1){

// comandi da eseguire nel caso

// la pagina sia già stata visitata

}else{

scrivi("preloader", sottostringa, termine, "/", null, false);

}

}

// -->

</script>

Al caricamento della pagina, viene richiamata la funzione visita().

Il contenuto di tutti i cookies salvati nella cache del browser viene inserito nella variabile stringa, all'interno della quale viene ricercato il contenuto di sottostringa.

Se questo è presente, vuol dire che la pagina è già stata visitata, e vengono eseguiti i comandi da sostituire alle righe in grassetto: altrimenti, viene scritto un cookie contenente sottostringa, e della durata indicata in rosso tra parentesi (nell'esempio, 60 secondi, dati dalla moltiplicazione di 60 per mille millisecondi).

<script language="JavaScript" type="text/javascript">

<!--

// funzione per la scrittura del cookie

function scrivi(nome, valore, scadenza, percorso, dominio, sicurezza){

document.cookie = nome + "=" + escape (valore) +

((scadenza == null) ? "" : ("; expires=" + scadenza.toGMTString())) +

((percorso == null) ? "" : ("; path=" + percorso)) +

((dominio == null) ? "" : ("; domain=" + dominio)) +

((sicurezza == true) ? "; secure" : "");

}

// viene definita la funzione "visita" (senza parametri)

function visita(){

// viene definita la variabile "termine", contenente la data attuale

var termine = new Date();

// a "termine" viene attribuito il valore della data che già contiene

// più il tempo contenuto tra parentesi

termine.setTime(termine.getTime() + (60 * 1000));

// viene definita la variabile "sottostringa", contenente la stringa

// "saltapreloade (o "saltaintro", è arbitrario)

var sottostringa = "saltapreloader";

// alla variabile "stringa" viene attribuito il contenuto

// di tutti i cookies

var stringa = document.cookie;

// se "sottostringa" è contenuta in "stringa"

if(stringa.indexOf(sottostringa) != -1){

// comandi da eseguire nel caso

// la pagina sia già stata visitata

// altrimenti

}else{

// viene scritto il cookie con nome "preloader",

// con il valore "sottostringa", e con la scadenza "termine"

scrivi("preloader", sottostringa, termine, "/", null, false);

}

}// -->

</script>

Tag del filmato

Servono solo negli ultimi due casi, ma li vediamo fin da adesso: i tag per i metodi servono a permettere la comunicazione Javascript > Flash.

1° caso - getURL

Nel primo caso, il filmato introduttivo e il filmato principale sono separati. Alla fine dell'intro, viene caricata la pagina contenente il filmato principale, filmato.html, tramite un semplice getURL. Alla prima visione della pagina, il getURL viene effettuato dal filmato in Flash, mentre alle visioni successive sarà la funzione Javascript con un location.href (riporto solo la funzione visita()).

function visita(){

var termine = new Date();

termine.setTime(termine.getTime() + (60 * 1000));

var sottostringa = "saltapreloader";

var stringa = document.cookie;

if(stringa.indexOf(sottostringa) != -1){

location.href="filmato.html";

}else{

scrivi("preloader", sottostringa, termine, "/", null, false);

}

}

2° caso - loadMovieNum

Al termine del filmato introduttivo, il filmato principale viene caricato sul livello 0 sostituendolo a quello precedente, tramite un loadMovieNum("filmato.swf",0);

In questo caso, per saltare il filmato introduttivo, dobbiamo caricare quello principale tramite un metodo Javascript, aggiungendo una funzione alle precedenti:

function visita(){

var termine = new Date();

termine.setTime(termine.getTime() + (60 * 1000));

var sottostringa = "saltapreloader";

var stringa = document.cookie;

if(stringa.indexOf(sottostringa) != -1){

carica();

}else{

scrivi("preloader", sottostringa, termine, "/", null, false);

}

}

function carica() {

var IE = navigator.appName.indexOf("Microsoft") != -1;

var filmato = IE ? window.mainMovie : window.document.mainMovie;

filmato.LoadMovie(0, "filmato.swf");

}

Se la pagina è già stata visitata, viene richiamata la funzione carica(): in questa funzione, alla variabile filmato viene attribuito il valore di riferimento all'oggetto Flash come indicato nei tag impostati. Quindi, nel livello 0 del filmato incorporato, viene caricato filmato.swf.

3° caso - GotoFrame

In questo caso, l'animazione introduttiva e quella principale sono nello stesso filmato. Al termine della prima, la riproduzione continua nel frame in cui inizia la seconda, nell'esempio il frame 102.

Al posto della funzione carica(), presente nel caso precedente, dobbiamo introdurne un'altra:

function visita(){

var termine = new Date();

termine.setTime(termine.getTime() + (60 * 1000));

var sottostringa = "saltapreloader";

var stringa = document.cookie;

if(stringa.indexOf(sottostringa) != -1){

vai();

}else{

scrivi("preloader", sottostringa, termine, "/", null, false);

}

}

function vai() {

var IE = navigator.appName.indexOf("Microsoft") != -1;

var filmato = IE ? window.mainMovie : window.document.mainMovie;

if(filmato.PercentLoaded() == 100){

filmato.GotoFrame(101);

}

}

Se la pagina è già stata visitata, viene richiamata la funzione vai().

La funzione, controlla innanzitutto che il filmato sia stato caricato completamente (non si può rimandare ad un frame se questo non è ancora stato caricato): in caso affermativo, manda il filmato al frame previsto.

Unico appunto: se dobbiamo rimandare al frame 102 del filmato, nella funzione dobbiamo scrivere 101, poichè la numerazione Javascript inizia dallo 0.

FILES

Visualizza:

esempio1 | esempio 2 | esempio3 |

Scarica:

esempio1 | esempio 2 | esempio3

Ti consigliamo anche