2010-10-20 5 views
1

Je suis au service de deux swfs différents qui lisent et écrivent dans la même variable SharedObject. La variable SharedObject est un nombre, et chaque swf vérifie ce nombre pour s'assurer qu'il n'utilise pas le même nombre deux fois. Il stocke ensuite le dernier numéro qu'il sélectionne. De cette façon, les deux swfs ne devraient jamais utiliser le même numéro deux fois, quel que soit l'ordre dans lequel ils sont chargés.ActionScript 3 SharedObjects ne sont pas conservés sur différents swfs?

Si je charge de manière répétée l'un des swfs, la rotation ne fonctionne jamais deux fois. Cependant, lors d'une commutation entre swfs, le nombre est parfois répété. Les SharedObjects sont censés être globaux pour Flash Player, alors pourquoi cela se produirait-il?

Merci

Répondre

3

Les objets partagés ont en fait leur propre dossier afin qu'ils ne puissent pas entrer en collision avec un autre SO du même nom. Si vous souhaitez que plusieurs SWF accèdent à un seul SO, vous devez spécifier un chemin d'accès réel pour le SO au lieu d'autoriser Flash à en créer un pour vous. Cela force le fichier SWF à lire/écrire le même SO.

Voici l'article qui contient une explication plus profonde et quelques solutions différentes:

http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d80.html

3

SharedObjects sont spécifiques et nom de fichier spécifique à l'emplacement le chemin racine est:

C:\Users\username\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\436UUXWX\ 

mais pour www.example.com/res/flash/file1.swf et www.example .com/res/flash/file2.swf il sera:

C:\Users\username\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\436UUXWX\www.example.com\res\flash\file1.swf\ 

et:

C:\Users\username\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\436UUXWX\www.example.com\res\flash\file2.swf\ 
+0

Aah! Alors, y a-t-il un moyen d'accéder à SharedObjects à travers les swfs? – Yarin

+0

Vous ne devez affecter que des chemins relatifs ... voici les informations et le lien vers l'article associé: Spécification d'un chemin - Vous pouvez utiliser le paramètre pathname facultatif pour spécifier un emplacement pour le fichier SharedObject. Ce fichier doit être un sous-répertoire du répertoire SharedObject de ce domaine. Par exemple, si vous demandez une application sur localhost et spécifiez les éléments suivants: mySO = SharedObject.getLocal ("myObjectFile", "/"); http://help.adobe.com/fr_FR/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d80.html – exoboy

+0

@exoboy - MERCI! – Yarin

Questions connexes