Показать сообщение отдельно
Старый 21.03.2011, 16:59
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 6  
Ответить с цитированием
in4core
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Wolsh спасибо большое. буду разбираться

Добавлено через 44 минуты
Wolsh что то косячит немного, или я не верно делаю

Код AS3:
function click(e:Event) {
 
centerRotate ( sprite , n )
 
n += 90
 
}
При первом повороте нормально, при втором уже нет, а при третьем вообще улетает неясно куда

Добавлено через 2 часа 9 минут
Решено. Вот аналог вашего класса
Код AS3:
private var _startPoint:Point = new Point(0,0);
public static function set externalPoint(p:Point) {
  _startPoint = p; // если крутим по центру передаем суда половину ширины и высоты
} 
public static function rotateUserPoint (obj:DisplayObject , angle:int):void 
		{
 
			obj.transform.matrix = new Matrix();
 
			var mat:Matrix = obj.transform.matrix;
 
			MatrixTransformer.rotateAroundInternalPoint(mat, _startPoint.x, _startPoint.y, angle);
 
			obj.transform.matrix = mat;
 
		}
Пример
Код AS3:
var n:int = 0;
RotationClass.externalPoint = new Point(sprite.width/2, sprite.height/2);
sprite.addEventListener(Event.ENTER_FRAME , go)
 
function go(e:Event) {
    RotationClass.rotateUserPoint ( e.currentTarget , n )
    n += 2;
}