Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

getLocal e flush

Primi metodi per il recupero dei dati
Primi metodi per il recupero dei dati
Link copiato negli appunti

Due premesse:
• per comodità di lettura, segnerò in blu gli oggetti,
gli eventi e i metodi, nonostante non vengano colorati in questo modo nel pannello "Azioni".
• per ragioni di spazio, talvolta userò filmati più
piccoli delle dimensioni necessarie a mostrare il pannello delle Impostazioni.
Prima di continuare, quindi, simuliamo la situazione della figura

figura

utilizzando il seguente filmato per settare almeno 10 KB di spazio dedicati al salvataggio di informazioni dal dominio html.it

.SharedObject.getLocal
variabile = SharedObject.getLocal(nome
[,percorso]);

Con questo metodo, il player cerca di recuperare i dati contenuti nello Shared Object nome, salvato in percorso (parametro opzionale), e di passarli all'oggetto variabile.data
Ad esempio:

mioCookie = SharedObject.getLocal(" sharedCookie");

Il player cerca lo Shared Object sharedCookie.sol, salvato nella cartella con il nome del filmato che chiama il metodo (il percorso opzionale non è specificato, quindi, se il filmato è

https://www.html.it/test/movie.swf

verrà cercato:

C:WINDOWSApplication DataMacromediaFlash Playerhtml.ittestmovie.swfsharedCookie.sol

Supponiamo che dentro il cookie fosse salvata la variabile nome con valore "flash". A questo punto, dentro mioCookie.data.nome troveremo il valore "flash".
Se invece il cookie non esiste, il riferimento fatto tramite il getLocal servirà a salvare i dati.

I caratteri che non possono essere usati nel nome del cookie, compreso lo spazio, sono i seguenti:

~ % &  ; : " ' , < > ? #

.SharedObject.flush
Il metodo viene richiamato in automatico alla chiusura del filmato, e salva nel cookie indicato dal getLocal, le informazioni inserite nell'oggetto data della variabile associata. Supponiamo ad esempio che sharedCookie.sol non esista.

mioCookie = SharedObject.getLocal("sharedCookie");
mioCookie.data.nome = "flash";

Il player cerca lo Shared Object, ma non lo trova. In mioCookie.data.nome viene salvato il valore "flash", e alla chiusura del filmato, quando viene richiamato il metodo flush, viene salvato il cookie con la variabile nome = "flash".
Se successivamente richiamiamo ancora:

mioCookie = SharedObject.getLocal("sharedCookie");
display.text = mioCookie.data.nome;

nel campo di testo "display" leggeremo la parola "flash".

Facciamo subito una prova. Apriamo la cartella Flash Player, nel percorso indicato in prima pagina a seconda del sistema operativo. Dentro la cartella, ci sono quelle relative ai domini che hanno salvato qualche cookie sul nostro computer. A questo punto, non esiste la cartella html.it, e se esiste, al suo interno non c'è la cartella "guide". Al pulsante del seguente filmato, è associato lo script:

on(release){
  mioCookie = SharedObject.getLocal("sharedCookie");
}

Clicchiamo sul pulsante, e poi aggiorniamo la pagina ( stessa cosa che
chiudere il filmato ).

La cartella "guide" non è stata creata. Il player ha cercato il cookie, ma non l'ha trovato. Alla chiusura del filmato, non essendoci dati in mioCookie.data, il metodo flush, chiamato in automatico, non ha alcun effetto.
Clicchiamo ora sul pulsante del filmato seguente, il cui script è:

on(release){
    mioCookie =
SharedObject.getLocal("sharedCookie");
    mioCookie.data.nome
= "flash";

Controlliamo nuovamente la cartella Flash Player (meglio tenerla aperta
per le prove seguenti). Al suo interno troviamo il cookie:

...Flash Playerhtml.itguideimgnegatyve_sharedobjectcookie002.swfsharedCookie.sol

Lo script ha cercato il cookie, e non l'ha trovato. Ha quindi creato la variabile nome = "flash" dentro l'oggetto mioCookie.data, e al refresh della pagina, il metodo flush ha scritto il cookie.
Dal momento che nel metodo getLocal non è specificato alcun percorso, il cookie è stato salvato seguendo quello effettivo del filmato. Infatti quest'ultimo risiede in:

http://flash-mx.html.it/guide/img/negatyve_sharedobject/cookie002.swf

Come detto in precedenza, nella chiamata si può impostare un percorso. per cui da adesso in poi, useremo:

mioCookie =
SharedObject.getLocal("sharedCookie",
"/guide/");

che ci farà trovare il cookie nella cartella: ...Flash Playerhtml.itguide Il metodo flush viene richiamato automaticamente alla chiusura del filmato, ma può essere chiamato anche tramite script. Al pulsante del seguente filmato è associato:

on(release){
    mioCookie =
SharedObject.getLocal("sharedCookie1",
"/guide/");
    mioCookie.data.nome
= "flash";
    mioCookie.flush();

}

Clicchiamo il pulsante, ma non aggiorniamo la pagina.

Come si può vedere, è stato direttamente creato il cookie, senza
dover chiudere il filmato. Abbiamo infatti:
...Flash Playerhtml.itguidesharedCookie1.sol
(da notare che specificando un percorso, viene omessa la cartella con
il nome del filmato cookie003.swf)

Come prima, è stato cercato il cookie, ma non è stato trovato.
E' stata inserita la variabile nome = "flash" nell'oggetto mioCookie.data, e immediatamente, senza aspettare la chiusura, mioCookie.flush() ha salvato lo Shared Object nel percorso indicato.
Se clicchiamo nuovamente sul pulsante, non accade nulla, perchè
il metodo flush, verificato che i dati scritti nel cookie e quelli da scrivere sono identici, non riscrive lo Shared Object.

Ti consigliamo anche