A la création de pixtiz, je voulais créer un formulaire d'identification entièrement en flash.
Il fonctionnait bien, notamment grâce à la
communication avec PHP / Mysql qui vérifiait si la combinaison pseudo / mot de passe était correcte.
Il manquait cependant une fonctionnalité que l'on a avec un formulaire classique : la saisie semi-automatique.
En effet, lorsque vous remplissez un formulaire html sous FireFox ou autre, celui conserve vos informations et vous n'avez pas à les retaper à chaque
visite du site. En cherchant un peu, j'ai découvert les Shared Objects, qui créent un cookie sur le pc du client et remplit cette fonctionalité.
Les fonctionalités sont multiples, cela peut servir à garder en mémoire un identifiant, le dernier niveau joué ...
Les Shared Object sont des fichiers .sol conservés dans un dossier de la forme : C:/Documents and Settings/Administrator/Application Data/Macromedia/Flash Player/.
Les méthodes et propriétés du Shared Object
Recapitulatif de toutes les methodes/propriétés propres aux Shared Objects :
- getLocal() : Ouvre un Shared Object ou le crée s'il n'existe pas encore
- flush() : Enregistre les données du Shared Object sur la machine client
- getSize() : Renvoie la taille actuelle de l'objet partagé, en octets.
- clear() : Purge toutes les données de l'objet partagé, puis supprime cet objet du disque.
- data : Permet d'accéder aux données contenues dans le Shared Object
La création d'un Shared Object sous Flash
La déclaration du Shared Object
pIXTIZ = SharedObject.getLocal("cookie_pixtiz");
Ici, on a crée un SharedObject nommé pIXTIZ qui sera associé avec un Shared Object enregistré sur le disque dur nommé "cookie_pixtiz".
Dans ce cas, les données peuvent être lues dans d'autre applications du même domaines que celle qui a crée le Shared Object.
Vérifier que le client peut bien enregistrer le cookie
if(!pIXTIZ.flush(1)){
System.showSettings(1);
}
On vérifie ici que le client peut enregistrer au moins 1 byte.
S'il ne peut pas, on ouvre une fenêtre pour lui permettre de changer de paramètres.
Le plus pratique est de placer cette portion de code dans le bloc onRelease du bouton permettant à l'utilisateur de s'identifier.
ATTENTION : la taille de votre Scène est au moins égale à 215 x 138 pixels sinon cette fenêtre ne s'affichera pas.
Ecriture des données
pIXTIZ.data.lenom = _root.saisie_nom.text;
pIXTIZ.data.lepass = _root.saisie_pass.text;
pIXTIZ.flush();
Il est important de noter que toutes les portions de codes qui concernent les Shared Object doivent être écrite au même niveau que le code qui l'a crée.
Ici, on enregistre les valeurs des champs de saisie qui ont les noms d'occurences : saisie_nom et saisie_pass.
La valeur de "_root.saisie_nom.text" est écrite dans le champ "lenom" du cookie pIXTIZ.
La méthode flush() permet d'enregistrer directement la valeur dans le cookie.
Le chargement des données du Shared Object
Créez un MovieClip vide et mettez lui directement cette portion d'ActionScript :
onClipEvent (load) {
//////////////////////////
// CHARGEMENT DU COOKIE
pIXTIZ = SharedObject.getLocal("cookie_pixtiz");
if (pIXTIZ.data.lenom == null) {
_root.saisie_nom.text = "";
_root.saisie_pass.text = "";
} else {
_root.saisie_nom.text = pIXTIZ.data.lenom;
_root.saisie_pass.text = pIXTIZ.data.lepass;
}
}
Au chargement du clip (donc de l'animation), on vérfie si la champ "lenom" contient une valeur.
Si oui, on charge les champs "lenom" et "lepass" du cookie dans les champs de texte correspondant de la scène.
Sinon, on met les champs de texte à une valeur nulle.
Effacer un Shared Object
pIXTIZ = SharedObject.getLocal("cookie_pixtiz");
pIXTIZ.clear();
On efface le cookie grâce à la méthode clear().
Exemple d'application
Vous pouvez ainsi tester les Shared objects directement (rechargez la page et vous verrez que vos données sont sauvées.
Cliquez ici pour
télécharger la source fla du tutorial sur les shared object flash.