Показать сообщение отдельно
Старый 07.04.2014, 18:02
Rivexe вне форума Посмотреть профиль Отправить личное сообщение для Rivexe Найти все сообщения от Rivexe
  № 7  
Ответить с цитированием
Rivexe
 
Аватар для Rivexe

Регистрация: Jun 2013
Сообщений: 133
Дело состоит в проекции. Центр проекции(точка схода) задан в центре рабочей области, поэтому при разных позициях объекта на экране, проекция тоже будет разная. Пронаблюдать это можно, если подвигать объект во время вращения:
Код AS3:
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
 
var speed = 1;
var test:MovieClip = new Test();
test.x = 50;
test.y = 50;
 
addChild(test);
 
test.addEventListener(Event.ENTER_FRAME, loop);
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
 
function loop(e:Event):void
{
	test.rotationY +=  speed;//Поворачиваем объект
}
 
function mouseMoveHandler(e:MouseEvent):void
{
	test.x = e.stageX;
	test.y = e.stageY;
}
test_1.swf   (1.1 Кб)


Однако точку схода можно менять:
Код AS1/AS2:
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
 
var speed = 1;
var test:MovieClip = new Test();
test.x = 50;
test.y = 50;
 
addChild(test);
 
test.addEventListener(Event.ENTER_FRAME, loop);
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
 
function loop(e:Event):void
{
	test.rotationY +=  speed;//Поворачиваем объект
}
 
function mouseMoveHandler(e:MouseEvent):void
{
	test.x = e.stageX;
	test.y = e.stageY;
 
	test.parent.transform.perspectiveProjection.projectionCenter = new Point(test.x, test.y);
}
test_2.swf   (1.2 Кб)
Вложения
Тип файла: swf test_1.swf (1.1 Кб, 183 просмотров)
Тип файла: swf test_2.swf (1.2 Кб, 162 просмотров)