TUTORIELS 
Flash MX : utiliser les Shared Objects

Page 1 | 2

L'outil de Macromedia offre aux développeurs un moyen simple et efficace de stocker des données sur le disque de l'utilisateur, à la manière des "cookies".
 (26 janvier 2004)
 
Passer une information d'une application à l'autre
L'intérêt du cookie est d'être facilement réutilisable, pas seulement d'une utilisation à l'autre du site, mais aussi entre deux applications. Bien entendu, on pourrait stocker une information dans un fichier texte (voire XML), mais il serait beaucoup plus difficile de l'associer à une seule personne/un seul ordinateur, et le code serait beaucoup plus long que si on utilisait simplement SharedObject.

Mais, comme nous l'avons vu, l'objet partagé est stocké dans un répertoire spécifique à une animation, et une animation ne peut lire que les cookies qui lui sont attachés. La solution réside dans le second argument de getLocal() : on peut y préciser le chemin local permettant d'accéder à l'objet. Pour partager les cookies de deux animations d'un même domaine, il suffit ainsi de mettre "/" comme chemin local...

Nous allons reprendre l'exemple de notre compteur, qui cette fois fonctionnera au clic.
Dans une nouvelle animation, déposez un composant PushButton, avec pour nom d'occurrence "bouton1". Entrez ensuite le code suivant dans la 1ere image de la timeline :

bouton1.setClickHandler("sauverLesClics");
function sauverLesClics()
  {
  cookie = SharedObject.getLocal("test", "/");
  if (cookie.data.nbrClics == null || cookie.data.nbrClics == 0)
    {
    cookie.data.nbrClics = 1;
    }
  else
    {
    cookie.data.nbrClics++;
    }
  cookie.flush();
  }

Forums
* Discutez en sur les forums

Ici, un clic sur le bouton incrémentera d'autant le compteur, stocké dans le cookie test, dans un champ nbrClics.

La seconde animation ne comporte qu'un champ dynamique, dont la variable se nomme "affichage". On place le code suivant dans la 1ere image de la timeline :

cookie = SharedObject.getLocal("test", "/");
if (cookie.data.nbrClics == null || cookie.data.nbrClics == 0)
  {
  affichage = "Vous devez d'abord cliquer le premier bouton";
  }
else
  {
  affichage = "Vous avez cliqué " + cookie.data.nbrClics + " fois   sur le bouton.";
  }

A chaque rechargement de la page, l'animation va chercher le contenu du cookie, et affiche le résultat correspondant.
Notez que les deux animations utilisent le chemin local "/".


Ce n'est là qu'un partie des SharedObjects, qui comprennent aussi les Remote SharedObjects. Nous creuserons plus en avant ce sujet dans un prochain article.

Page 1 | 2

 
[ Xavier BorderieJDNet
 
Accueil | Haut de page