Рисование фигур в ActionScript

Поэтому мне нужно динамически рисовать некоторые пользовательские формы в ActionScript на холсте (например, вращающееся колесо из линий и кругов). Я использую Flash Builder.

Вопрос 1: Что будет работать лучше (быстрее):

  • Рисовать на графике холста, на каждом кадре все чистить и перерисовывать?
  • Создать несколько объектов Shape и преобразовать их соответственно?

Вопрос 2: Как я могу вращать некоторую фигуру относительно ее центра, но не относительно ее родителя? (Пробовал играть с матрицами, но они работают относительно родительского контейнера). Может есть какая-то функциональность push pop матрицы?


person user1561713    schedule 10.10.2012    source источник


Ответы (1)


Вопрос 1: Почти наверняка использование фигур напрямую будет быстрее. Flash Player лучше справляется с обновлением экрана, когда не все нужно перерисовывать и т. Д. Однако, как правило, лучше написать небольшой тест, когда под вопросом производительность.

Вопрос 2: Shapes DisplayObjects, поэтому вы можете просто использовать свойство rotation, и они будут вращаться вокруг своей исходной точки (точка (0,0)). Просто убедитесь, что вы нарисовали фигуру относительно начала координат и переместите ее в нужное место, используя ее свойства x y (например, для прямоугольника 20x20 с центром в точке (70,70)):

var rect : Shape = new Shape();
rect.graphics.beginFill(0xffffff);
rect.graphics.drawRect(-10,-10,20,20); // center it properly about (0,0)
rect.graphics.endFill();
rect.x = 70.0; rect.y = 70.0; rect.rotation = 45.0; // move and rotate
person Jakub Wasilewski    schedule 10.10.2012
comment
Этот ответ охватывает все мои вопросы и все, что мне нужно знать. Большое спасибо. - person user1561713; 11.10.2012