Большая проблема эффективности в проекте временной шкалы на основе AS3 - PullRequest
1 голос
/ 02 февраля 2012

Прежде всего, это бит кода:

for (var i in yearMarkersArray) {
 yearMarkersArray[i].x = ((timelines.x + 350) % 140) + (140 * i) - 5;
 yearMarkersArray[i].text = "0";
}

Это часть основного цикла, которая срабатывает всякий раз, когда пользователь перетаскивает уменьшенные временные шкалы (спрайты в eventsArray) влево или вправо. Шесть объектов TLFText в yearMarkersArray, кажется, прокручиваются влево или вправо с пользователем, но действительно перемещаются и помечаются соответствующими маркерами года, рассчитанными функцией, которую я не включил выше (это работает и не относится к этой проблеме, я просто заменил это с "0" для наглядности).

Оператор установки текста - это код проблемы ... Я прокомментировал буквально все остальное из основного цикла, чтобы проверить это. Я даже изменил оператор так, чтобы он не включал какой-либо вызов функции (просто устанавливая атрибут text в «0»), и это все еще заставляет конечный файл .swf съедать лишние 1% моего ЦП каждые 15 секунд до наконец FPS падает через пол. Остальная часть основного цикла имеет много, НАМНОГО более сложный, и я уверен, что неэффективный код также запускает каждый кадр, и я понятия не имею, почему это одно утверждение вызовет столько проблем.

Поскольку этот проект считывает файл данных со списком событий временной шкалы, чей промежуток лет я не могу предсказать, мне нужно, чтобы отображаемые маркеры года были каким-то образом динамически выполнены. В конечном итоге код работает (я заметил только смешное замедление, когда случайно оставил фильм открытым и бездействующим на несколько минут), но я довольно новичок во Flash и полностью готов к альтернативным решениям, если они доступны. Заранее спасибо за совет!

Ответы [ 2 ]

1 голос
/ 10 февраля 2012

TLFText очень медленно изменяется и должен действительно использоваться только для текста, который нуждается в таком дополнительном форматировании. Динамический классический текст - это путь для небольших изменяемых полей.

0 голосов
/ 02 февраля 2012

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

Вы вызываете этот цикл с начала или с момента перетаскивания?

Если при перетаскивании это ваша проблема

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