由於某些原因,當我嘗試從Worker
(在AS3中)接收共享屬性時,結果始終爲空。也就是說,我使用setSharedProperty()
將值發送到Worker
,當我使用getSharedProperty()
檢索它時,它總是返回undefined
/null
。工作人員在檢索共享屬性時爲空
這裏有一個簡單的測試,我設置:
package
{
import flash.display.Sprite;
import flash.system.Worker;
import flash.system.WorkerDomain;
public class Main extends Sprite
{
private var _worker:Worker;
public function Main():void
{
if (Worker.current.isPrimordial)
{
initMain();
}
else
{
initWorker();
}
}
private function initMain():void
{
_worker = WorkerDomain.current.createWorker(this.loaderInfo.bytes);
_worker.setSharedProperty("message", "test");
_worker.start();
}
private function initWorker():void
{
_worker = Worker.current;
var message:String = _worker.getSharedProperty("message");
trace(message);
}
}
}
當我跟蹤message
,結果爲空。雖然我的主要目標是製作一個AIR應用程序,但無論我是爲AIR(3.7)還是Flash Player(11.6)編譯,我都會得到相同的結果,因爲某些原因,11.7無法將flash.system.Worker識別爲有效的類) 。
我正在使用Flex SDK通過FlashDevelop進行編譯。有人知道什麼是錯的,也許我錯過了我的代碼中的東西?
我沒有對你的答案但是Flash 11.7無法識別類的問題可能是由於您的playerglobal.SWC或正在編譯的SWF版本造成的。目前的SWF版本似乎是19,您可能需要指定一個包含「工作者」功能的版本。 –
啊,謝謝你。更新FlashDevelop(它也更新Flex和AIR SDK)後,它現在編譯爲11.7。但主要問題仍然存在。 – puggsoy
在_worker.setSharedProperty(「message」,「test」)後面加上'trace(_worker.getSharedProperty(「message」))'。那麼你有財產嗎?如果不是,那麼甚至不需要討論'initWorker'函數,因爲我們可以在那之前確定問題。 –