BackGrounde Worker中的Sharedobject as3 Air(android,ios)
问题描述:
im为Android和ios开发Air应用程序并使用工作人员im在后台执行大量任务(两个swfs),我希望在工作人员swf中拥有SharedObjects背景工作者),这可能吗?或者数据会丢失?你需要写相同的共享对象BackGrounde Worker中的Sharedobject as3 Air(android,ios)
答
一切都是指定两个相同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);
你也需要考虑如何在情况下,你的线程同步要在特定的顺序
如有疑问写入数据,使用主线程与应该存储的数据进行交互。我不记得SharedObjects和工作人员有任何限制,但从未尝试过测试。 – Vesper