BackGrounde Worker 中的共享对象 as3 Air (android,ios)

Sharedobject in BackGrounde Worker as3 Air (android,ios)

我正在为 android 和 ios 开发一个 Air 应用程序并且我在后台使用 worker 执行繁重的任务(两个 swf),我想在 worker swf(后台)中有 SharedObjects工人),这可能吗?否则数据会丢失?

您需要写入同一个 SharedObject 的所有内容都是为两者指定相同的 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);

此外,如果您想按特定顺序写入数据,您还需要考虑如何同步线程