Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.09.2010, 07:13
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 11  
Ответить с цитированием
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
если речь идет о вращении объекта вокруг произвольной точки, то
rotateAroundInternalPoint() и rotateAroundExternalPoint() класса MatrixTransformer

http://help.adobe.com/ru_RU/AS3LCR/F...ansformer.html
__________________
freelance | Раздор

Старый 03.09.2010, 14:16
incoob вне форума Посмотреть профиль Отправить личное сообщение для incoob Найти все сообщения от incoob
  № 12  
Ответить с цитированием
incoob

Регистрация: Mar 2008
Сообщений: 215
Цитата:
Сообщение от derhab Посмотреть сообщение
если речь идет о вращении объекта вокруг произвольной точки, то
rotateAroundInternalPoint() и rotateAroundExternalPoint() класса MatrixTransformer

http://help.adobe.com/ru_RU/AS3LCR/F...ansformer.html
Круто!

Старый 04.09.2010, 02:05
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 13  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Точно, круто!

Вот реализация

Код AS3:
   /**
 * Rotates a matrix about a point defined inside the matrix's transformation space.
 * This can be used to rotate a movie clip around a transformation point inside itself. 
 *
 * @param m A Matrix instance.
 *
 * @param x The x coordinate of the point.
 *
 * @param y The y coordinate of the point.
 *
 * @param angleDegrees The angle of rotation in degrees.
 * @playerversion Flash 9.0.28.0
 * @langversion 3.0
 * @keyword Matrix, Copy Motion as ActionScript    
 * @see flash.geom.Matrix         
 */
public static function rotateAroundInternalPoint(m:Matrix, x:Number, y:Number, angleDegrees:Number):void
{
	var point:Point = new Point(x, y);
	point = m.transformPoint(point);
	m.tx -= point.x;
	m.ty -= point.y;
	m.rotate(angleDegrees*(Math.PI/180));
	m.tx += point.x;
	m.ty += point.y;
}
 
/**
 * Rotates a matrix about a point defined outside the matrix's transformation space.
 * This can be used to rotate a movie clip around a transformation point in its parent. 
 *
 * @param m A Matrix instance.
 *
 * @param x The x coordinate of the point.
 *
 * @param y The y coordinate of the point.
 *
 * @param angleDegrees The angle of rotation in degrees.
 * @playerversion Flash 9.0.28.0
 * @langversion 3.0
 * @keyword Matrix, Copy Motion as ActionScript    
 * @see flash.geom.Matrix       
 */
public static function rotateAroundExternalPoint(m:Matrix, x:Number, y:Number, angleDegrees:Number):void
{
	m.tx -= x;
	m.ty -= y;
	m.rotate(angleDegrees*(Math.PI/180));
	m.tx += x;
	m.ty += y;
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 09.09.2010, 07:54
incoob вне форума Посмотреть профиль Отправить личное сообщение для incoob Найти все сообщения от incoob
  № 14  
Ответить с цитированием
incoob

Регистрация: Mar 2008
Сообщений: 215
Цитата:
Сообщение от dimarik Посмотреть сообщение
Точно, круто!

Вот реализация
Напрасно иронизируете - приведенный вами код, в случае существования нативного класса, не приходится писать и включать в свои проекты. Что есть экономия времени(единоразовая, но все же) и размера бинарника.
Я бы так же радовался, если бы, к примеру, в Graphics была нативная реализация кривых Безье третьего порядка, или в lineStyle можно было бы задавать stroke для рисования штрих-пунктирных линий, или если бы было реализована куча других полезных вещей, существующих в других языках, для которых в as приходится делать ручные велосипеды использовать не нативную реализацию.
С другой стороны, тогда бы вырос размер плеера. Хотя кого это интересует при теперешних скоростях интернета? Тем более, что размер дистрибутива плеера и так вырос в пару раз с 9 до 10.1 версии.

Старый 09.09.2010, 08:48
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 15  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Цитата:
Напрасно иронизируете - приведенный вами код, в случае существования нативного класса, не приходится писать и включать в свои проекты. Что есть экономия времени(единоразовая, но все же) и размера бинарника.
MatrixTransformer, как и все классы, что в пакете fl.*, далеко не нативные, а следовательно увеличивают размер бинарника.

Цитата:
или в lineStyle можно было бы задавать stroke для рисования штрих-пунктирных линий
Ну есть же, помимо lineStyle(), еще и lineBitmapStyle(), lineGradientStyle() и lineShaderStyle().


Последний раз редактировалось i.o.; 09.09.2010 в 09:33.
Старый 09.09.2010, 18:07
incoob вне форума Посмотреть профиль Отправить личное сообщение для incoob Найти все сообщения от incoob
  № 16  
Ответить с цитированием
incoob

Регистрация: Mar 2008
Сообщений: 215
Цитата:
Сообщение от i.o. Посмотреть сообщение
MatrixTransformer, как и все классы, что в пакете fl.*, далеко не нативные, а следовательно увеличивают размер бинарника.
Не обратил внимания на package. А еще с этими методами в этом классе будет включаться куча другого кода, который не факт что будет использоваться в проекте. Так что конкретно в этом случай действительно намного проще написать это преобразование матрицы самому.

Цитата:
Сообщение от i.o. Посмотреть сообщение
Ну есть же, помимо lineStyle(), еще и lineBitmapStyle(), lineGradientStyle() и lineShaderStyle().
Вроде lineStyle обычно вызывается перед этими методами(для задания ширины линии и т.п.)?

Старый 09.09.2010, 18:14
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 17  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Цитата:
Вроде lineStyle обычно вызывается перед этими методами(для задания ширины линии и т.п.)?
Да так и есть. Только вот совместно с ними вы бы смогли:
Цитата:
задавать stroke для рисования штрих-пунктирных линий

Старый 09.09.2010, 23:52
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 18  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Ну так выводы какие будут?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:58.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 09:58.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.