![]() |
можно ли в AS3 запускать циклы в фоновом режиме?
кто знает, можно ли в AS3 запускать циклы в фоновом режиме?
проблема в следующем: есть динамическое меню которое делает кнопки из очень длинного массива. При каждой новой обработке массива через цикл, приложение замораживается на пару секунд. А так как меню генерируется очень часто, то приложение в целом выглядет тормознуто У какого есть мысли по этому поводу? |
Делать цикл от 1 до n/2 в одном кадре и от n/2 до n - в другом.
А почему массив такой большой и создание кнопки такое тяжелое? Что-то там не то (у меня было подобное, помогла оптимизация работы с xml локализации, левая вещь вообще %)). Можно ещё не пересоздавать его, а старый переиспользовать попробовать. |
Массив большой потому что это справочная система, кнопки простые, текст и немного анимации
Массив один, и создается в самом начале. Все тормоза из-за длинных циклов. Попробую переписать код под использование EnterFrame, посмотрим что получится.. Добавлено через 5 минут Но мне все же интересно, возможно ли в AS3 запускать код в фоновом режиме? |
Параллелить нельзя. Весь код исполняется в одном потоке.
|
Что такое "фоновый режим"? Можно в некотором роде написать свой фоновый режим с блэкджеком, который будет сам более-менее автоматически по разным фреймам раскидывать. Есть ещё такой ShaderJob - выполняется в отдельном потоке, но его на добавление кнопок не запрячь никак. Вот всё, что сейчас есть, флэш можно считать однопоточным.
И это, может создавать только те кнопки, которые видны в данный момент на экране? Если в скроллере, то кнопки может имеет смысл не двигать, а менять на них надписи/действия по клику только) |
хм.. интересный вариант про статичные кнопки, даже и не задумывался об этом
Ну в общем мне картина в целом понятна, надо оптимизировать сам код |
Потоков, как в яве в as нет. Вместо длинного массива лучше переложить в коллекцию, где элементы - это ветки меню, тогда перебор будет гораздо быстрее.
|
Есть псевдопотоки
http://www.libspark.org/wiki/WikiStart/en#async-as3 |
| Часовой пояс GMT +4, время: 19:08. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.