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

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

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

Регистрация: Oct 2008
Адрес: Moscow
Сообщений: 130
Отправить сообщение для Fergus с помощью ICQ
По умолчанию Качающиеся весы. Анимация. Способы реализации анимации.

У меня есть задача: нужно сделать флешку, где нарисованы весы. При наведении мыши на одну из сторон мувика, весы наклоняются в соответствующую сторону.

У меня это сейчас сделано с помощью Tween и easing, но есть ряд проблем:
  • Tween-ов получается слишком много (это и rotation для "коромысла", и "y" для кажой из чаш, и "х" для них же (т.к. движутся они все-таки не по вертикали, по траектории - окружности);
  • Tween-ы для "х" и "y" чаш - все равно не позволяют двигать их точно по той же траектории что и крепления "коромысла". Отклонение не то чтоб очень заметное, но неприятное.
  • И, самое главное, когда флешка перегружается событиями (юзер начинает много раз дергать мышку с одного края мувика на другой) - Tween-ы сбиваются, чаши отрываются от коромысла, все это едет куда попало.
Я так понял, что это особенности устройства объектов Tween и никуда от этого не деться. Если я не прав и просто неправильно их использую - пожалуйста укажите на это.

Мне пришел в голову другой способ реализации этой задачи. Вот такой:
  1. В первом кадре рисуются весы наклоненные влево.
  2. В 50-м (например) - наклоненные вправо.
  3. Создается Motion Tween для плавного перетекания из одного состояния в другое.
  4. В АС3 пишем те же EventListener-ы.
  5. А в функциях (реакция на ивенты) записывает команду проигрывать с текущего фрейма до конца (или до начала), если не поступит команды остановиться и двигаться в обратном направлении.
Проблема в том, что я не знаю какиим функциями можно заставить проигрывать мультик в разных направлениях.

Подскажите пожалуйста - в правильном ли направлении я вообще мыслю? И, если в правильном, то по каким ключевым словам вест поиск в мануалах?

Спасибо.
__________________
Jedem das Seine

Старый 21.11.2008, 14:49
darksranger вне форума Посмотреть профиль Отправить личное сообщение для darksranger Посетить домашнюю страницу darksranger Найти все сообщения от darksranger
  № 2  
Ответить с цитированием
darksranger
 
Аватар для darksranger

блогер
Регистрация: Jun 2007
Адрес: in sankt - peterburg
Сообщений: 787
Записей в блоге: 2
Отправить сообщение для darksranger с помощью ICQ
ну я бы для начала, стал использовать твины, типа caurina Gtween tweenLite
далее, чтобы все не ползало, нужно разработать логику остановки твинов, ( в случае с Gtween, можно вобще заставить твин выполнится до конца в один кадр ) соотвественно ползет у вас
1 из за того что вы наследуете координаты, от каких то координат, которые меняются
2 не останавливаете твины

вобщем я бы сделал жескую сетку координат для положений котралировал бы остановку\запуск твинов
__________________
на каком языке вы пишите?
а на каком нужно?

Старый 21.11.2008, 15:53
Fergus вне форума Посмотреть профиль Отправить личное сообщение для Fergus Найти все сообщения от Fergus
  № 3  
Ответить с цитированием
Fergus

Регистрация: Oct 2008
Адрес: Moscow
Сообщений: 130
Отправить сообщение для Fergus с помощью ICQ
Цитата:
Сообщение от darksranger Посмотреть сообщение
ну я бы для начала, стал использовать твины, типа caurina Gtween tweenLite
Не знаю что это такое, посоветуйте пожалуйста где об этом почитать. Адобовский хелп не очень помог.

Цитата:
Сообщение от darksranger Посмотреть сообщение
далее, чтобы все не ползало, нужно разработать логику остановки твинов, ( в случае с Gtween, можно вобще заставить твин выполнится до конца в один кадр ) соотвественно ползет у вас
1 из за того что вы наследуете координаты, от каких то координат, которые меняются
2 не останавливаете твины

вобщем я бы сделал жескую сетку координат для положений котралировал бы остановку\запуск твинов
О жесткой сетке координат не очень понятно.
Остановку твинов при активизации других, сейчас сделаю. Вдруг одно это поможет?
__________________
Jedem das Seine

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

Регистрация: Apr 2007
Сообщений: 143
Отправить сообщение для NePridymal с помощью ICQ
Я бы делал не так. Я бы сделал функцию, которая бы на вход принимала параметр "угол наклона весов" и по пришедшему углу пересчитывала позиции всех компонентов в весах. А дальше можно просто по таймеру вызывать эту функцию с разным значением угла.

Старый 21.11.2008, 16:01
Xpb7 вне форума Посмотреть профиль Отправить личное сообщение для Xpb7 Найти все сообщения от Xpb7
  № 5  
Ответить с цитированием
Xpb7

Регистрация: Jul 2008
Адрес: Рига
Сообщений: 176
Да не делай твинами. Это неприемлемый подход!
Создай класс Штатива (горизонтальный имеется ввиду), в который будут включены 2е инстанции класса Карамысла .
Опиши поведение Штатива в завимости от сдвига мышки, а именно поворот (обыкновенный rotation по центру объекта), а Карамысла пусть себе болтаются по краям (для них тоже можно поведение качания в зависимости от скорости движения Штатива, а то будут статичны, это уродливо).
И все будет чётко.

Старый 21.11.2008, 16:01
darksranger вне форума Посмотреть профиль Отправить личное сообщение для darksranger Посетить домашнюю страницу darksranger Найти все сообщения от darksranger
  № 6  
Ответить с цитированием
darksranger
 
Аватар для darksranger

блогер
Регистрация: Jun 2007
Адрес: in sankt - peterburg
Сообщений: 787
Записей в блоге: 2
Отправить сообщение для darksranger с помощью ICQ
ну одно это, конечно может помочь, но я бы посоветовал, задействовать поиск и google, насчет Gtween и TweenLite

жеская сетка координат, это просчет заранее всех координат, для всех твинов тоесть не,
start object.x, stop obeject.x+20 смещение обьекта отсительно своих координат, на 20 по координатам x
так вот, жеская сетка, подрузумевает под собой вот что

например при примере сверху, обьект должен был занять x = 120, но из за постоянных запусков других твинов все сбивается так вот нужно задать прямо 120 по x а не наследуемо

надеюсь понятно разьяснил, смысл в том чтобы просчитать все координаты и задавать их твинам, а не наследовать их вот
__________________
на каком языке вы пишите?
а на каком нужно?

Старый 21.11.2008, 16:02
Fergus вне форума Посмотреть профиль Отправить личное сообщение для Fergus Найти все сообщения от Fergus
  № 7  
Ответить с цитированием
Fergus

Регистрация: Oct 2008
Адрес: Moscow
Сообщений: 130
Отправить сообщение для Fergus с помощью ICQ
Цитата:
Сообщение от NePridymal Посмотреть сообщение
Я бы делал не так. Я бы сделал функцию, которая бы на вход принимала параметр "угол наклона весов" и по пришедшему углу пересчитывала позиции всех компонентов в весах. А дальше можно просто по таймеру вызывать эту функцию с разным значением угла.
Ну, тогда придется сделать так чтобы эта функция вызывалась непрерывно, постоянно синхронизируя координаты всех объектов с углом наклона весов. Не будет ли "ступенчатости"?

Добавлено через 8 минут
Цитата:
Сообщение от Xpb7 Посмотреть сообщение
Да не делай твинами. Это неприемлемый подход!
Создай класс Штатива (горизонтальный имеется ввиду), в который будут включены 2е инстанции класса Карамысла .
Опиши поведение Штатива в завимости от сдвига мышки, а именно поворот (обыкновенный rotation по центру объекта), а Карамысла пусть себе болтаются по краям (для них тоже можно поведение качания в зависимости от скорости движения Штатива, а то будут статичны, это уродливо).
И все будет чётко.
Просто и гениально, поворачивать чаши весов а не смещать!
Спасибо!
__________________
Jedem das Seine

Старый 21.11.2008, 16:19
NePridymal вне форума Посмотреть профиль Отправить личное сообщение для NePridymal Найти все сообщения от NePridymal
  № 8  
Ответить с цитированием
NePridymal
 
Аватар для NePridymal

Регистрация: Apr 2007
Сообщений: 143
Отправить сообщение для NePridymal с помощью ICQ
Цитата:
Сообщение от Fergus Посмотреть сообщение
Ну, тогда придется сделать так чтобы эта функция вызывалась непрерывно, постоянно синхронизируя координаты всех объектов с углом наклона весов. Не будет ли "ступенчатости"?
Нет, не будет. Вызывайте пересчет один раз на каждом кадре и все будет хорошо.

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

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

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


 


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


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