Многопоточность или зеленые потоки в ActionScript? - PullRequest
3 голосов
/ 16 сентября 2008

Мне было интересно, есть ли какой-нибудь код или библиотеки классов о том, как реализовать многопоточность или «зеленую многопоточность» в ActionScript.

Как вы могли видеть, Скотт Петерсон разрабатывает какой-то набор инструментов, но я не нашел больше информации об этом, кроме его выступления на мероприятии Adobe MAX Chicago.

С уважением, Никлас

Ответы [ 4 ]

3 голосов
/ 12 января 2009

Вот библиотека Green Threading от Дрю Камминса:

http://blog.generalrelativity.org/?p=29

1 голос
/ 30 апреля 2009

Это старая статья , но метод quasimondo для запуска нескольких SWF-файлов и последующего совместного использования данных через LocalConnection также может представлять интерес. Они говорили, что использование LocalConnection может занять несколько циклов, но если обрабатываемые итерации достаточно сложны, это не должно быть слишком большой проблемой.

1 голос
/ 16 сентября 2008

В ActionScript нет встроенного способа сделать зеленую многопоточность. Вы должны написать код, чтобы справиться с этим.

Создайте функцию, которая выполняет одну итерацию любой операции, которую вы хотите выполнить. Он должен возвращать true или false в зависимости от того, выполнена его работа или нет. Теперь вам нужно вычислить временной интервал, оставшийся до следующего обновления экрана для события ENTER_FRAME. Это можно сделать с помощью flash.utils.getTimer.

start = getTimer();
//thread is a ui component added to system manager that is redrawn each frame
var fr:Number = Math.floor(1000 / thread.systemManager.stage.frameRate);
due = start + fr;

Продолжайте выполнять свою функцию, каждый раз проверяя возвращаемое значение функции и проверяя, не превышено ли время выполнения, сравнивая getTimer () с due.

Это было реализовано в удобном для использования классе Алексом Харуи в записи блога - Потоки в ActionScript

0 голосов
/ 17 сентября 2008

Я графический парень, а не программист, поэтому я не уверен, что это поможет вам. НО!

Я делаю все мои GUI многокадровыми "фильмами" и пишу каждый поток GUI в отдельном кадре. Убедитесь, что у вас есть только 1-3 потока, и установите свой FPS на 30 или 60.

Это полезно для небольших проектов, потому что оно устойчиво к ошибкам, и реализация сделана для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...