#flash #actionscript-3
#вспышка #actionscript-3
Вопрос:
У меня есть два варианта, и я хочу знать, что быстрее
У меня есть пул из 1000 объектов sprites в as3 на экране
когда это необходимо, каждый спрайт должен изменить свой размер
Я могу
1 — сделайте каждый спрайт простым контейнером для использования графики для рисования прямоугольника, то есть вызывайте 'spriteInstance.graphics.'
, рисуйте прямоугольник и при каждом «обновлении» я делаю graphics.clear
и перерисовываю прямоугольник, но с новым размером, это для каждого спрайта.
или
2 . создайте каждый спрайт с рамкой и при каждом обновлении изменяйте его размер
что лучше?
Ответ №1:
Ну, в любом случае, вы создаете спрайт для каждого прямоугольника, и то, что вы описали, по сути, одно и то же, поэтому я сомневаюсь, что это приведет к какому-либо значительному повышению производительности.
Однако я полагаю, что вы могли бы повысить производительность, просто создав один спрайт, сохранив данные каждого «спрайта» в векторе, а затем выполнив итерацию по этому вектору, рисуя каждый прямоугольник в одном спрайте.
Возможно, вы также захотите взглянуть на растровое растушевывание (если хотите сохранить каждый спрайт по отдельности) и двойную буферизацию для дополнительного повышения производительности.
Комментарии:
1. Мне нужно создать по одному спрайту для каждого объекта данных, потому что мне нужно обрабатывать MouseEvents, я не знаю, есть ли в as3 более легкий графический элемент, который обрабатывает события мыши. в любом случае, как вы предлагаете, снижение производительности тоже не сильно изменится, поэтому я полагаю, что остановлюсь на самом простом