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

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

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

Регистрация: Nov 2011
Адрес: Ukraine, Kyiv
Сообщений: 4
Записей в блоге: 1
По умолчанию Как вращать обект болие чем на 180 градусов

Я разрабатываю тренажер для метрополитена, и столкнула из проблемой. В общем задача состоит в следующем:
Есть индикатор из стрелкой вот его вид:



Он отображает уровень напряжения на контактном рельсе, когда поезд едет напряжение меняется и эта стрелка должна плавно отображать значение напряжения.
У меня есть код:
Код AS3:
                       //Следим за сменой напряжения
			Global.addEventListener(Global.VALUE_LINE_VOLTAGE_CHANGED, onValueLineVoltageChanged);
 
		private function onValueLineVoltageChanged(e:Event = null):void {
 
			//Рассчитываем куда нужно поставить стрелку при текущем значении напряжения
			pointerPosition = 164 * Global.valueLineVoltage / Global.AVERAGE_LINE_VOLTAGE;
 
                        //Плавно меняем положение стрелки
			TweenLite.to(indicatorPointer, 1, {rotation: pointerPosition});
Если стрелка отклоняется меньше чем на 180 градусов то все нормально, она плавно крутиться вокруг своей оси. Если же напряжение контактного рельса стает большое, так что нужно стрелку отклонить больше чем на 180 градусов например на 230, то она делает полный оборот вокруг своей оси.
Как сделать так чтобы если стрелка стоит в положении поворота например в 170 градусов то при увеличении напряжения она крутанулась дальше вправо и стала в положение 230 градусов ?

Старый 04.11.2011, 20:08
kup вне форума Посмотреть профиль Отправить личное сообщение для kup Найти все сообщения от kup
  № 2  
Ответить с цитированием
kup

Регистрация: Apr 2009
Адрес: kup78.livejournal.com
Сообщений: 84
Вы видимо не так считаете: pointerPosition = 164 * Global.valueLineVoltage / Global.AVERAGE_LINE_VOLTAGE;

при indicatorPointer.rotation = 0, у вас стрелка куда показывает?
Должна на "восток", там где у вас "1.0",
при .rotation = -225; -> нулевая отметка,
при .rotation = 45; -> "1.2"

P.S. А можно где-то посмотреть сам тренажер?

Старый 04.11.2011, 20:19
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 3  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Можно использовать свойство TweenMax, которое называется shortRotation. В этой ситуации подойдет в самый раз

Старый 06.11.2011, 02:09
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 4  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
у TweenLite помимо метода to (куда) есть метод from (откуда)

И в принципе если вам нужно повернуть допустим от -250 до 250, то по идее можно сначала повернуть от -250 до 0, а потом от 0 до 250.

Старый 08.11.2011, 13:59
Albul вне форума Посмотреть профиль Отправить личное сообщение для Albul Найти все сообщения от Albul
  № 5  
Ответить с цитированием
Albul
 
Аватар для Albul

Регистрация: Nov 2011
Адрес: Ukraine, Kyiv
Сообщений: 4
Записей в блоге: 1
Благодарю goodguy, действительно работает:

Код AS3:
TweenMax.to(indicatorPointer, 1, {shortRotation: {rotation: pointerPosition}});
Спасибо kup, я понял идею - ворочать стрелку не от 0 до 360 а от -180 до 180, но на это нужно делать дополнительный перерасчет, а из shortRotation лаконичней получается.

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:42.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
position , поворот

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

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


 


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


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