Aus irgendeinem Grund, wenn ich versuche, eine gemeinsame Eigenschaft von einem Worker
(in AS3) zu erhalten, ist das Ergebnis immer null. Das heißt, ich sende einen Wert an eine Worker
mit setSharedProperty()
, wenn ich es unter Verwendung getSharedProperty()
abrufen, gibt es immer undefined
/null
zurück.Worker wird beim Abrufen der gemeinsamen Eigenschaft null.
Hier ist ein einfacher Test, den ich ein:
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);
}
}
}
Als ich message
verfolgen, ist das Ergebnis null. Obwohl mein Hauptziel ist, eine AIR-App zu erstellen, bekomme ich das gleiche Ergebnis, egal ob ich für AIR (3.7) oder Flash Player kompiliere (11.6, 11.7 erkennt flash.system.Worker nicht als gültige Klasse) .
Ich kompiliere mit dem Flex SDK, über FlashDevelop. Weiß jemand was falsch ist, vielleicht habe ich etwas in meinem Code verpasst?
Ich habe keine Antwort auf Ihre m Ain Problem, aber das Problem mit Flash 11.7 nicht zu erkennen, Klassen möglicherweise aufgrund Ihrer playerglobal.SWC oder der SWF-Version, die kompiliert wird. Die aktuelle SWF-Version scheint 19 zu sein. Sie müssen möglicherweise eine angeben, die die Funktion "Worker" enthält. –
Ah, danke dafür. Nach dem Aktualisieren von FlashDevelop (das auch die Flex- und AIR-SDKs aktualisiert) wird jetzt für 11.7 kompiliert. Das Hauptproblem besteht jedoch weiterhin. – puggsoy
Fügen Sie 'trace (_worker.getSharedProperty (" message "))' direkt nach '_worker.setSharedProperty (" message "," test ")' hinzu. Hast du die Immobilie dann? Wenn nicht, müssen wir nicht einmal die Funktion 'initWorker' diskutieren, da wir feststellen können, dass das Problem vorher beginnt. –