Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.04.2015, 17:14
LighFusion вне форума Посмотреть профиль Отправить личное сообщение для LighFusion Найти все сообщения от LighFusion
  № 1  
Ответить с цитированием
LighFusion

Регистрация: Mar 2015
Сообщений: 14
По умолчанию Плавный Zoom(smoothed)

Не могу понять как сделать - плавный зум - приближение камеры.
На данный момент простой зум - осуществляется через этот код
Код 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 - взял отсюда, с его помощью осуществляется плавное вращение - с этим никаких проблем нету, но я не пойму как это адаптировать для зума ?

Пробовал делать это через - bool, if evt.delta<0 zoom == true, controller.distance *=1.10, но тогда возникает проблема - бесконечного отдаления, либо приближения, как это можно решить ?

Старый 23.04.2015, 18:04
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Можно использовать твин движок. Тут в самый раз будет caurina tweener. Передавать туда начальный размер и конечный, и время за которое он должен быть достигнут

Старый 23.04.2015, 20:26
LighFusion вне форума Посмотреть профиль Отправить личное сообщение для LighFusion Найти все сообщения от LighFusion
  № 3  
Ответить с цитированием
LighFusion

Регистрация: Mar 2015
Сообщений: 14
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Можно использовать твин движок. Тут в самый раз будет caurina tweener. Передавать туда начальный размер и конечный, и время за которое он должен быть достигнут
В общем немного обмозговав получилось сделать такое
Код AS3:
private var zoomOverTimeCameraFactor:Number;
public var zoomOverTimeFactor:Number;
zoomOverTimeFactor = 0;
zoomOverTimeCameraFactor = 1;
 
          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;
 
    }
p.S.
В общем сгновно-кодил костыль - мож кому пригодиться ?

Код AS3:
            if (zoomOverTimeFactor > 0)
            {
                controller.distance -=  zoomOverTimeFactor * zoomOverTimeCameraFactor;
                if(controller.distance >0)
                    zoomOverTimeFactor /= 1.1; 
            }
Буду не-прочь увидеть - решение по лучше!


Последний раз редактировалось LighFusion; 23.04.2015 в 21:21. Причина: Добавлено сообщение!
Создать новую тему Ответ Часовой пояс GMT +4, время: 00:58.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:58.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.