Многопоточность или зеленая многопоточность в ActionScript?

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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
6 812
4

Ответы 4

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

Создайте функцию, которая выполняет одну итерацию любой операции, которую вы хотите выполнить. Он должен возвращать истину или ложь в зависимости от того, выполнена его работа или нет. Теперь вам нужно вычислить временной интервал, оставшийся до следующего обновления экрана для события 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 () с должным.

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

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

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

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

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

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

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

Другие вопросы по теме