Flex Shared Object – Partager des SharedObjects entre plusieurs SWF
Par défaut, chaque shared object est spécifique à un SWF, celui par lequel il a été crée. Cependant, vous pouvez autoriser plusieurs SWF à accéder au même sharedobject en spécifiant un chemin lors de l'appel à getLocal(). Le chemin par défaut est le chemin vers le SWF.
Par exemple, si le SWF est à l'adresse http://www.exemple.com/flex/client/a.swf, le chemin est /flex/client/a.swf, ce qui veut dire que seul a.swf peut accéder au shared object.
Pour cet exemple, on va considérer que a.swf récupére une référence au shared object appelé "exemple" comme ceci:
var sharedObject:SharedObject = SharedObject.getLocal("exemple");
Si b.swf est dans le même répertoire que a.swf et que b.swf essaie aussi de récupérer une référence à un shared object appelé "exemple" en utilisant exactement le même code que a.swf, b.swf va récupérer une référence vers un SharedObject différent (un SharedObject qui a un scope sur le chemin /flex/client/b.swf. Si vous voulez que a.swf et b.swf soient capables d'accéder au même shared object, vous devez spécifier un chemin en paramètre utilisant un chemin commun qu'ils partagent tous les deux, comme/flex/client:
var sharedObject:SharedObject = SharedObject.getLocal("exemple", "/flex/client");
Pour que plusieurs fichiers SWF aient accès aux mêmes SharedObject, ils doivent spécifier un chemin qu'ils ont en commun. Par exemple, a.swf et b.swf ont /flex/client en commun. Ils partagent aussi les chemins /flex et /.
Si http://www.exemple.com/main.swf veut utiliser le même local shared object que a.swf et b.swf, ces trois fichiers SWF doivent spécifier le chemin "/" pour le shared object car c'est le seul chemin qu'ils ont en commun.
Les SharedObjects peuvent être partagés entre des fichiers SWF d'un même domaine. Des fichiers SWF sur deux domaines différents de peuvent pas accéder au même sharedObject.
Articles similaires
- Flex Shared Object – Créer, lire et écrire des SharedObject
- Flex Shared Objects – Conserver le type des objets dans un Shared Object avec le metatag RemoteClass
- Flex Shared Object – Exemple d'utilisation des SharedObject (authentification)
- Flash Remoting – Envoyer des requêtes en utilisant NetConnection
- Flex CSS: Modifier les CSS à l'exécution (Runtime CSS)
Aucun trackbacks pour l'instant






22 juin 2008
Il est par contre fortement déconseillé d'utiliser simultanément le même SharedObject pour partager des données entre deux animations. Les résultats obtenus sont aléatoires. La deuxième animation n'est pas mise au courant que la première à mis à jour le SharedObject et inversement. Les données lues peuvent ne pas être à jour. De plus il ne faut dans ce cas jamais retenir la référence obtenue au SharedObject avec SharedObject.getLocal() sinon l'une des deux animations ne pourrait pas écrire sur le SharedObject. Il vaut mieux passer par LocalConnection qui possède un système de mutex efficace. Ma contribution.
23 décembre 2010
Je serais curieux de voir si on peut aussi partager des shared objects entre 2 applications air. ca pourrait être intéressant dans certains cas.