Differentes utilisations de sharedobject (cookie sous flash)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 652 fois - Téléchargée 25 fois

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

Ajouter un commentaire

Commentaires

HackTh3mAll
Messages postés
1
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
3 mars 2008
-
Bonjour.......
j'aurai bezoin d'un petit coup de main les gars

j'utilise les shared objects depuis lgtmp(le mec ki se vente....)
le pb C ke G une autre page en flash ki aurait bezoin d'avoir acces au meme cookie......et le pb est k'il n'y accéde pas.
.............................................................
en fait pour etre precis, quand je compil le swf et ke je suis toujour sous adobe il reconnait les sharedObjects,mais quand je lance ma page web avec la frame flashe...PAN il ne reconnait plus les objet(shaared)....
merci de votre aide. :o)
dimebagplan
Messages postés
7
Date d'inscription
jeudi 1 septembre 2005
Statut
Membre
Dernière intervention
7 août 2008
-
Enorme ! je suis en train de faire un jeu en flash et je me demandais justement comment j'allais pouvoir sauvegarder une partie !
Je pensai que j'allais avoir recours a du php etc... avant même d'avoir commencer, ça me soulais déja. lol.

Très simpas ce shared object et ce tutorial bien expliquer :).
@+
lotistofou
Messages postés
1
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
26 avril 2007
-
clear() sert juste à vider le sharedObject, pas à le supprimer du disque, c'est p-e ça ton problème :)
benson_g
Messages postés
1
Date d'inscription
dimanche 12 février 2006
Statut
Membre
Dernière intervention
12 février 2006
-
Je suis comme GOUROUTIN, la methode clear() s'avère inactive chez moi.

My_best = SharedObject.getLocal("etapes");
My_best.clear();

ne fonctionne pas...

Quelqu'un l'a-t-il utilisée avec succès et peut-il fournir sa source ?
gouroutin
Messages postés
11
Date d'inscription
lundi 6 janvier 2003
Statut
Membre
Dernière intervention
31 juillet 2009
-
merci et bravo pour ce très bon tutorial. le seul souci, c'est que la methode clear() ne marche pas chez moi. savez-vous pourquoi ?

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.