im Développer une application Air pour android et ios et im en utilisant les travailleurs aussi préformer une tâche lourde en arrière-plan (deux swfs), je veux avoir SharedObjects dans le SWF de l'ouvrier (le travailleur de fond), est-ce possible? ou les données seront perdues?Sharedobject dans BackGrounde Worker as3 Air (android, ios)
0
A
Répondre
0
Tout ce que vous devez écrire dans le même SharedObject est de spécifier le même path
pour les deux comme
mySO = SharedObject.getLocal("myObjectFile","/");
plus d'infos ici http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d80.html
Voici un code court pour vous assurer que les données ont gagné » t être perdu, les travailleurs font en fait la même chose que plusieurs joueurs flash ont couru simultanément. Il suffit de lancer 2 ou plus swf et voir le résultat:
import flash.net.SharedObject;
var iterations:int = 100
function witeToSo()
{
var mySO:SharedObject = SharedObject.getLocal("myObjectFile", "/");
if (iterations > 0)
{
if (!mySO.data.str) mySO.data.str = ""
mySO.data.str += int(Math.random() * 10);
iterations--;
}
txt.text = "str: " + mySO.data.str + " symbolsTotal:" + (mySO.data.str.length) + "\n";
setTimeout(witeToSo, Math.random()*100);
}
setTimeout(witeToSo, 2000);
vous devez également penser à la façon de synchroniser vos fils au cas où vous voulez écrire les données dans l'ordre spécifique
En cas de doute, utilisez thread principal interagir avec les données qui devraient être stockées. Je ne me souviens pas qu'il y ait une restriction sur SharedObjects et les travailleurs, mais je n'ai jamais essayé de tester. – Vesper