Differentes utilisations de sharedobject (cookie sous flash)

Contenu du snippet

Salut tout le monde!
Je poste ce code car il me semble necessaire de connaitre l'utilisation de l'objet SharedObject de flash.
Il y a deux parties a la source: la premiére crée les clips et les champs de text necéssaires a l'execution du code de la deuxieme partie. Ce n'est pas la la plus importante partie du code mais c'est toujours interressant pour ceux qui ne connaissent pas trop action script, cependant cette partie n'est pas expliqué en details.
La deuxieme partie qui est plus courte est celle ou l'on s'occupe du SharedObject, en l'utilisant pour enregistrer des données textuelles ou des données de position d'un clip. Vous pouvez enregistrer toutes les sortes de donnés dans un sharedObject (comme la position de la tete de lecture d'une animation, des scores ou une position dans un jeu créé sous flash).

Il n'y a que du code. Faites copier coller sur un document flash vide.
Il faut donc fair "Tester l'animation" ou "exporter l'animation" pour constater les effets du code.

Il faut bien se rendre compte que le shared object est créé dans le disque dur du pc qui joue l'animation. Les données sont donc enregistré et peuvent étres appellés a tout moment.

Source / Exemple :


//-------
//-------------------------------- "Partie I : Création des élements"
//-------
// Création d'un textField Statique pour la case ou l'on rentre le nom
_root.createTextField("upname_txt", 6, 50, 30, 100, 20);
upname_txt.text = "Entrez votre Nom";
upname_txt.selectable = false;
//
// Création d'un textField Statique pour la case ou l'on rentre le pass
_root.createTextField("uppass_txt", 7, 200, 30, 100, 20);
uppass_txt.text = "Entrez votre pass";
uppass_txt.selectable = false;
//
// Création d'un textField de saisie pour le nom
_root.createTextField("name_txt", 1, 50, 50, 100, 20);
name_txt.type = "input";
name_txt.border = true;
//
// Création d'un textField de saisie pour le pass
_root.createTextField("pass_txt", 2, 200, 50, 100, 20);
pass_txt.type = "input";
pass_txt.border = true;
//
// Création d'une case de validation
_root.createEmptyMovieClip("go_mc", 3);
with (go_mc) {
	moveTo(350, 50);
	lineStyle(1, 0x000000, 100);
	beginFill(0x000000, 70);
	lineTo(350, 70);
	lineTo(370, 70);
	lineTo(370, 50);
	lineTo(350, 50);
	endFill();
}
//
// Création d'un TextField contenant le mot enregistrer
_root.createTextField("go_txt", 8, 375, 50, 100, 20);
go_txt.text = "Enregistrer";
go_txt.selectable = false;
//
// Création d'une case de verification
_root.createEmptyMovieClip("verif_mc", 4);
with (verif_mc) {
	moveTo(350, 80);
	lineStyle(1, 0x0000FF, 100);
	beginFill(0x0000ff, 70);
	lineTo(350, 100);
	lineTo(370, 100);
	lineTo(370, 80);
	lineTo(350, 80);
	endFill();
}
//
// Création d'un TextField contenant le mot verifier
_root.createTextField("verif_txt", 9, 375, 80, 100, 20);
verif_txt.text = "Verifier";
verif_txt.selectable = false;
//
// Création d'un clip déplacable.
_root.createEmptyMovieClip("boule_mc", 5);
with (boule_mc) {
	lineStyle(1, 0x000000, 100);
	beginFill(0x00ff00, 100);
	moveTo(0, 0);
	curveTo(-10, 0, -10, 10);
	curveTo(-10, 20, 0, 20);
	curveTo(10, 20, 10, 10);
	curveTo(10, 0, 0, 0);
}
//-------
//-------------------------------- "Partie II : Utilisation du shared object"
//-------
// Déclaration du sharedObject
login_so = SharedObject.getLocal("login");
// Quand on clique sur go_mc
go_mc.onRelease = function() {
	// Affectation des variables
	name = name_txt.text;
	pass = pass_txt.text;
	// Affectation des varibles dans le sharedObject
	login_so.data.name = name;
	login_so.data.pass = pass;
	// Et on enregistre
	login_so.flush();
};
// Quand on clique sur verif_mc
verif_mc.onRelease = function() {
	// les champs de textes name_txt et pass_txt prennent les valeurs de login_so.data.name et de login_so.data.pass
	name_txt.text = login_so.data.name;
	pass_txt.text = login_so.data.pass;
};
// Si login_so.data.xboule n'est pas défini, on place la boule
if (login_so.data.xboule == "undefined") {
	boule_mc._x = boule_mc._y=300;
} else {
	boule_mc._x = login_so.data.xboule;
	boule_mc._y = login_so.data.yboule;
}
// Deplacement de boule_mc lorsque l'on clique dessus mais que l'on ne relache pas la souris
boule_mc.onPress = function() {
	startDrag(this);
};
// Quand on relache la souris
boule_mc.onRelease = function() {
	// la variable xboule du Shared Object = le x de boule_mc
	login_so.data.xboule = boule_mc._x;
	// la variable yboule du Shared Object = le y de boule_mc
	login_so.data.yboule = boule_mc._y;
	// on enregistre tout ca
	login_so.flush();
	// et on arrete de deplacer le clip
	stopDrag();
};
/*Les methodes/propriétées de SharedObject:
getLocal() --> Ouvre un ShareObject (ou le crée si il n'y en a pas)
data --> tous les attributs de data sont enregistré dans le sharedObjet
flush() --> Enregistre le l'object sur le pc
clear() --> supprime l'objet du disque
getSize() --> donne la taille de l'objet */

Conclusion :


Merci.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.