2017-07-29 58 views
0

im爲Android和ios開發Air應用程序並使用工作人員im在後臺執行大量任務(兩個swfs),我希望在工作人員swf中擁有SharedObjects背景工作者),這可能嗎?或者數據會丟失?你需要寫相同的共享對象BackGrounde Worker中的Sharedobject as3 Air(android,ios)

+1

如有疑問寫入數據,使用主線程與應該存儲的數據進行交互。我不記得SharedObjects和工作人員有任何限制,但從未嘗試過測試。 – Vesper

回答

0

一切都是指定兩個相同path

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

更多的信息在這裏http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d80.html

這裏是一個簡短的代碼,以確定這些數據獲得了」不會丟失,工作人員實際上正在做同樣的事情,因爲多個Flash播放器同時運行。只要運行2個或更多的SWF,然後查看結果:

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

你也需要考慮如何在情況下,你的線程同步要在特定的順序