begin process at 2008 08 28 16:24:28
1 233 191 membres
293 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DIFFERENTES UTILISATIONS DE SHAREDOBJECT (COOKIE SOUS FLASH)


Information sur la source

Catégorie :ActionScripts Niveau : Débutant Date de création : 18/02/2004 Date de mise à jour : 18/02/2004 18:14:01 Vu : 7 176

Note :
7,25 / 10 - par 4 personnes
7,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note


Description

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

  • //-------
  • //-------------------------------- "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 */
//-------
//-------------------------------- "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.
  • signaler à un administrateur
    Commentaire de AtomPouce le 18/02/2004 18:26:56

    C vrai que C super interessant et pas bcp utiliser ! pour ma part je les utilise pour la sauvegarde dans un jeu , C bien pratique pour connaitre : l endroit du perso , sa vie ,son nivo ses armes etc .... et ce ki est encore plus pratik, C que tout cela est codé ...je m explik : si on fouille bien son PC on fini par trouver son petit cookie créé par shared object , et dednas les données ne sont as ecrite clairement , mai en braille (lol en gros C codé)Donc pas de petit tricheur qui se mettent au nivo 235 avec le super-bazooka-ki-tue-tout-a-lecran !alors qu il est au debut du jeu ...
    l inconvenient est que a mes souvenirs je croi kon ne pouvai pas sortir un array ...dommage ....

  • signaler à un administrateur
    Commentaire de afad le 19/02/2004 17:24:07

    Sans reprendre les citations au combien pertinente de TOP30 ;) ça c'est une SOURCE !  BW en avait écrit la base, c'est sympa à toi de le complêter, et c'est utile du débutant jusqu'au crack ;)

    A+
    aFaD

  • signaler à un administrateur
    Commentaire de Prouprou_Sensei le 19/02/2004 18:55:18

    On voit parfois des codeurs qui se prénnent la tete pour ecrir une petite variable sur un fichier texte en utilisant le php ou les bases de donnés etc... Certes le sharedObject disparait lors du formatage du disque dur du pc client mais c'est si simple d'utilisation et si fléxible ! En plus on reste sous flash...
    Moi j'adore

  • signaler à un administrateur
    Commentaire de cherio le 02/03/2004 14:40:06

    je vais juste rajouter un petit truc qui permet de verifier si l'utilisateur a autorisé les SharedObjects sur son HDD, et lui proposer de le faire si ça n'est pas le cas :
    login_so = SharedObject.getLocal("login");
    go_mc.onRelease = function(){
    if(!login_so.flush(1)){/*verifie qu'on peut enregistrer au moins 1 byte*/
    System.showSettings(1);/*ouvre la fenetre de parametres sur le 2eme onglet*/
    }
    }

    no²

  • signaler à un administrateur
    Commentaire de gouroutin le 08/06/2004 17:18:03

    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 ?

  • signaler à un administrateur
    Commentaire de benson_g le 12/02/2006 12:54:15

    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 ?

  • signaler à un administrateur
    Commentaire de lotistofou le 26/04/2007 11:01:13

    clear() sert juste à vider le sharedObject, pas à le supprimer du disque, c'est p-e ça ton problème :)

  • signaler à un administrateur
    Commentaire de dimebagplan le 29/08/2007 17:16:40

    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 :).
    @+

  • signaler à un administrateur
    Commentaire de HackTh3mAll le 03/03/2008 15:47:04

    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)

Ajouter un commentaire

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Boutique

Boutique de goodies CodeS-SourceS