![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: May 2009
Сообщений: 80
|
Добрый день. Вопрос таков:
При програмном рисовании (библиотека flash.display.Graphics) в экземпляре класса Shape можно создавать простые фигуры, круг, квадрат, квадрат с закруглёнными краями, линии и прочее... Пример: //Создаётся объект форма var circle:Shape = new Shape(); //Присвоение свойств кругу circle.graphics.lineStyle(thickness,color); circle.graphics.drawCircle(posX, posY, radius); Суть проблемы: При использовании методов scaleX и scaleY (моштабирование относительно начального состояния), происходит не только масштабирование, но и смещение объекта по осям х и у. Если я правильно понимаю, то это происходит из-за того, что фигура обрамлена некоторым квадратом задающим форму. Центр этого квадрата по умолчанию верхний левый угол. И изменение масштаба происходит относительно него, от чего и появляется илюзия смещения по осям. Есть ли метод изменения центра формы или какие ни будь другие методы больбы с данной неприятностью? Буду признателен за ответ ибо не один час ушёл на попытки это исправить. Последний раз редактировалось iNils; 15.05.2009 в 21:22. |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 1,155
|
4 минуты
Последний раз редактировалось flash33; 15.05.2009 в 20:55. |
|
|||||
|
Регистрация: May 2009
Сообщений: 80
|
Спасибо большое!
|
|
|||||
|
Регистрация: May 2009
Сообщений: 80
|
В таком случае ещё 1 вопрос если не затруднит.
Если по данному принипу делать фабрику объектов, и передавать туда все вышеперечисленные параметры. То центр у кругов будет не общим Добавлено через 1 минуту Цитата:
Добавлено через 3 минуты Спасибо большое, теперь дошло!))) |
|
|||||
|
ну да, будет и что?
scale|rotation применяться относительно начала координат контейнера.. а уж как расположить(или нарисовать) содержимое контейнера относительно начала координат - дело хозяйское |
|
|||||
|
Регистрация: May 2009
Сообщений: 80
|
В данном случае вышло именно то, что требовалось.
Я пытаюсь создать имитацию работы динамиков, 6 кругов увеличиваютстся в первом фрейме на 1.3 и уменьшаются во втром при помощи прослушивателя Event.ENTER_FRAME. Для этого я создал фабрику кругов и передаю туда параметры. Так как они теперь отрисовываются в центре, дрожание происходит именно так как нужно)) |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:32. |
|
|
« Предыдущая тема | Следующая тема » |
|
|