Как сделать плавное приближение к объекту(AS3)
Имеется такой код
stage.addEventListener(MouseEvent.MOUSE_WHEEL, wheel, false, 0, true);
private function wheel(evt:MouseEvent):void{
if (evt.delta < 0)
{
controller.distance *= 1.10;
}
else
{
controller.distance /= 1.1;
}
return;/
}
С его помощью - осуществляется простое приближение камеры к объекту, но оно не плавное как тут - при вращении, а с "прерываниями". Не могу понять как используя controller, - который делает вращение камеры плавным, сделать тоже самое для приближения.
В принципе я пробовал написать что-то подобное - проверки
if (zoomOverTimeFactor > 0) {
(zoomOverTimeFactor - 1);
//zoomin=true;
if (zoomOverTimeFactor > 0) {
controller.distance -= zoomOverTimeFactor * zoomOverTimeCameraFactor;
} else {
zoomOverTimeFactor = 0;
}
}
if (zoomOverTimeFactor < 0) {
(zoomOverTimeFactor + 1);
if (zoomOverTimeFactor < 0) {
controller.distance -= zoomOverTimeFactor * zoomOverTimeCameraFactor;
} else {
zoomOverTimeFactor = 0;
}
}
private
function wheel(evt: MouseEvent): void {
if (evt.delta < 0) {
//controller.distance *= 1.10;
zoomOverTimeFactor = -10;
} else {
//controller.distance /= 1.1;
zoomOverTimeFactor = 10;
//zoomin = true
}
//return;
}
Но результат - получилось не совсем правильным, ибо приближение и отдаление от объекта становиться - бесконечным, то есть постоянным, не пойму как сделать проверку - если значение приближения увеличилось - то прекратить движение, и на -оборот