Z jakiegoś powodu, gdy próbuję odebrać właściwość współużytkowaną z Worker
(w AS3), wynik jest zawsze pusty. Oznacza to, że wysyłam wartość do Worker
przy użyciu setSharedProperty()
, gdy pobieram ją za pomocą getSharedProperty()
, zawsze zwraca ona undefined
/null
.Pracownik uzyskuje wartość pustą podczas pobierania właściwości wspólnej
Oto prosty test skonfigurować:
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);
}
}
}
Kiedy prześledzić message
, wynik jest zerowy. Chociaż moim głównym celem jest stworzenie aplikacji AIR, otrzymuję taki sam wynik, niezależnie od tego, czy kompiluję dla środowiska AIR (3.7) czy Flash Player (11.6, z jakiegoś powodu 11.7 nie rozpoznaje flash.system.Worker jako właściwej klasy) .
Kompiluję używając Flex SDK, przez FlashDevelop. Czy ktoś wie, co jest nie tak, może przeoczyłem coś w moim kodzie?
Nie mam odpowiedzi na twoje pytanie ain problem, ale problem z Flash 11.7 nie rozpoznający klas może być spowodowany twoją playerglobal.SWC lub wersją SWF, która jest kompilowana. Obecna wersja SWF wydaje się mieć 19, być może trzeba będzie podać taką, która zawiera funkcjonalność 'Worker'. –
Ah, dzięki za to. Po aktualizacji FlashDevelop (która również aktualizuje pakiety Flex i AIR SDK), kompiluje się teraz do wersji 11.7. Główny problem nadal jednak istnieje. – puggsoy
Dodaj 'trace (_worker.getSharedProperty (" message "))' zaraz po '_worker.setSharedProperty (" message "," test ")'. Czy otrzymujesz wtedy nieruchomość? Jeśli nie, nie ma potrzeby nawet omawiać funkcji 'initWorker', ponieważ możemy ustalić, że problem zaczyna się wcześniej. –