Показать сообщение отдельно
Старый 08.01.2009, 02:20
Rzer вне форума Посмотреть профиль Отправить личное сообщение для Rzer Посетить домашнюю страницу Rzer Найти все сообщения от Rzer
  № 12  
Ответить с цитированием
Rzer
 
Аватар для Rzer

блогер
Регистрация: Feb 2007
Адрес: Spb
Сообщений: 613
Записей в блоге: 8
Отправить сообщение для Rzer с помощью ICQ
Не мой класс просто. DynamicMovie - это кончено крепко. А setProperty2 приватным должен быть. Используется setRegistration, scaleX2, scaleY2, x2, y2, к примеру вот в таком примере (кстати на видео тоже не правильно работает - пальцы при изменении масштаба и повороте в разных местах фото оказываются), реализовать правильное движение довольно таки проблематично без такого класса. А с ним реализация сводится к нескольким строчкам:
Код AS3:
 
				var regX:Number = point1.lastX + (point2.lastX - point1.lastX) / 2;
				var regY:Number = point1.lastY + (point2.lastY - point1.lastY) / 2;
				var pnt:Point = globalToLocal(registrationPoint);
				this.setRegistration(pnt.x, pnt.y);
				this.x2 = this.x2 + (regX - registrationPoint.x);
				this.y2 = this.y2 + (regY - registrationPoint.y);
 
				registrationPoint.x = regX;
				registrationPoint.y = regY;
				var pnt:Point = globalToLocal(registrationPoint);
				this.setRegistration(pnt.x, pnt.y);
				this.scaleX2 = this.scaleY2 = curScale / curDistance *  Math.sqrt( (point1.lastX - point2.lastX) * (point1.lastX - point2.lastX) + (point1.lastY - point2.lastY) * (point1.lastY - point2.lastY))
 
				this.rotation2 = curRotation + ( Math.atan2((point1.lastY - point2.lastY), (point1.lastX - point2.lastX))-curAngle) * 180 / Math.PI;
Где curScale, сurDistance, curRotation - начальные размер, расстояние, угол от точки point1 до точки point2.

setRegistration - задаёт точку вращения. x2,y2, rotation2, scaleX2, scaleY2 - координаты и размеры относительно этой точки регистрации.

В примере сначала берем середину между точками и смотрим на отклонение с предыдущей, изменяя координаты. А затем берём её в качестве центра вращения и скалирования картинки.


Последний раз редактировалось Rzer; 08.01.2009 в 02:49.