2017-07-29 1 views
0

im Entwickeln einer Air-App für Android und IOS und ich benutze auch Arbeiter eine schwere Aufgabe im Hintergrund (zwei swfs), möchte ich SharedObjects in der Worker swf (die Hintergrundarbeiter), ist das möglich? oder die Daten werden verloren gehen?Sharedobject in BackGroande Arbeiter as3 Air (Android, IOS)

+1

Im Zweifelsfall schreiben, verwenden primären Thread mit Daten zu interagieren, die gespeichert werden sollen. Ich kann mich nicht daran erinnern, dass SharedObjects und Worker Einschränkungen unterliegen, aber ich habe nie versucht, sie zu testen. – Vesper

Antwort

0

Alles, was Sie auf den gleichen Shared schreiben müssen, ist die gleiche path für beide angeben, wie

mySO = SharedObject.getLocal("myObjectFile","/"); 

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

Hier ist ein kurzer Code Sie sicherstellen, dass die Daten gewonnen‘ Damit es nicht verloren geht, machen die Mitarbeiter das selbe wie mehrere Flash-Player gleichzeitig. Führen Sie einfach 2 oder mehr swf und das Ergebnis:

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); 

müssen Sie auch daran denken, wie Threads, falls synchronisieren möchten Sie die Daten in einer bestimmten Reihenfolge

Verwandte Themen