Быстрее: рисование прямоугольника или изменение размера спрайта?

#flash #actionscript-3

#вспышка #actionscript-3

Вопрос:

У меня есть два варианта, и я хочу знать, что быстрее

У меня есть пул из 1000 объектов sprites в as3 на экране

когда это необходимо, каждый спрайт должен изменить свой размер

Я могу

1 — сделайте каждый спрайт простым контейнером для использования графики для рисования прямоугольника, то есть вызывайте 'spriteInstance.graphics.' , рисуйте прямоугольник и при каждом «обновлении» я делаю graphics.clear и перерисовываю прямоугольник, но с новым размером, это для каждого спрайта.

или

2 . создайте каждый спрайт с рамкой и при каждом обновлении изменяйте его размер

что лучше?

Ответ №1:

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

Однако я полагаю, что вы могли бы повысить производительность, просто создав один спрайт, сохранив данные каждого «спрайта» в векторе, а затем выполнив итерацию по этому вектору, рисуя каждый прямоугольник в одном спрайте.

Возможно, вы также захотите взглянуть на растровое растушевывание (если хотите сохранить каждый спрайт по отдельности) и двойную буферизацию для дополнительного повышения производительности.

Комментарии:

1. Мне нужно создать по одному спрайту для каждого объекта данных, потому что мне нужно обрабатывать MouseEvents, я не знаю, есть ли в as3 более легкий графический элемент, который обрабатывает события мыши. в любом случае, как вы предлагаете, снижение производительности тоже не сильно изменится, поэтому я полагаю, что остановлюсь на самом простом