По какой-то причине, когда я пытаюсь получить общее свойство из Worker
(в AS3), результат всегда равен нулю. То есть, я отправляю значение Worker
с использованием setSharedProperty()
, когда я его извлекаю с помощью getSharedProperty()
, он всегда возвращает undefined
/null
.Работник получает 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. Кто-нибудь знает, что случилось, может быть, я пропустил что-то в своем коде?
У меня нет ответа на ваш м ain, но проблема с Flash 11.7, не распознающая классы, может быть связана с вашей версией playerglobal.SWC или SWF, которая компилируется. Текущая версия SWF кажется 19, вам может потребоваться указать тот, который включает в себя функциональность «Рабочий». –
А, спасибо за это. После обновления FlashDevelop (который также обновляет Flex и AIR SDK), он теперь компилируется для 11.7. Однако основная проблема сохраняется. – puggsoy
Добавить 'trace (_worker.getSharedProperty (" message "))' right after '_worker.setSharedProperty (" message "," test ")'. Вы тогда получаете собственность? Если нет, нет необходимости даже обсуждать функцию 'initWorker', так как мы можем определить, что проблема начинается до этого. –