PDA

Просмотр полной версии : [Papervision] Camera.target проблема (


Fushigi
24.12.2009, 18:40
Доброго времени суток! Столкнулся с проблемой. Делаю плавное движение камеры через TweenLite задавая позицию dummy объекту на который камера нацелена. Суть в том, что по клику на какой-то объект dummy туда плавно переезжает вместе с камерой, а потом камера от dummy отвязывается и может свободно вращаться. Так вот баг в том, что как-только после твининга я делаю camera.target=null, она автоматически возвращается в положение, которое было до твининга (кроме позиции), а не остается на том-же месте, и не смотрит на dummy. Код выглядит примерно так:

private function onObjectClick(e:InteractiveScene3DEvent):void
{
dummy.copyTransform(camera); // делаю dummy на одной оси с камерой и двигаю вперед
dummy.moveForward(1000);
camera.target = dummy;
TweenLite.to(dummy,1,{x:e.displayObject3D.x,y:e.displayObject3D.y,z:e.displayObject3D.z}); // двигаю dummy к цели
TweenLite.to(camera,1,{z:e.displayObject3D.z,onComplete:resumeFreeCamera});
} // двигаю камеру по одной оси как по рельсе

private function resumeFreeCamera():void
{
camera.target=null; // отвязываю от dummy чтоб свободно вращать.
//И тут начинается баг, т.к. камера поворачивается(не ездит), в то положение, которое предшествовало твинингу.
//Т.е. по сути получается что пока у камеры есть таргет, то ее нацеленность на что-то не отследить...
//Как-то так. А мне нужно чтоб она оставалась нацеленной на эту точку, но чтоб я уже мог ее вращать.
//Делал в дебаг моде, может поэтому глюки с камерой(
}

override protected function onRenderTick(e:Event=null):void
{
super.onRenderTick(e);
}