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

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

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

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
По умолчанию Как правильно анимированить?

День добрый, есть задача, нужно программно анимировать элемент что бы он двигался к какой то точке, а после этого двигался обратно. Казалось бы все просто, но задача усложняется тем что таких елементов много, вот пример действий:
Код AS1/AS2:
var endTween:Boolean = false;
 
 
mc.onRollOver = sectionOver;                                 // при наведении на пункт раздела запускаем анимацию...
 
function sectionOver():Void
{
	endTween = false;
 
	var ArrowX:Tween = new Tween(this.smallArrow, "_x", None.easeOut, this.smallArrow._x, this.smallArrow.targetX, TIME_A / 2, true);
		ArrowX.onMotionFinished = function()
		{
			if(!endTween)
			{
				ArrowX.yoyo();
			} else {
				ArrowX.stop();
			}
		}
этот вариант хорош когда элемент один, а когда их много то возникают проблемы с флагами, нужно для каждого делать по своему флагу, чтот весьма геморно. Хорошо было бы сделать обьекту св-во и в него записывать нужное состояние, но из твина до обьекта не достучишься. Так что я несколько зашел в тупик.
-------------------------------
Собсна эта логика анимации нормальная? или лучше использовать что то другое, в голову приходит по тому же событию onMotionFinished запускать еще несколько твинов играющих в обратном направлении или пользоватьс setTimeout, имхо послдених 2 варианта более корявые в исполнении. Кто что может посоветовать?
Вот пример:
Вложения
Тип файла: rar progMenu.rar (6.8 Кб, 33 просмотров)

Старый 15.07.2009, 13:38
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Зачем Вам в принципе состояние объекта?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 15.07.2009 в 13:48.
Старый 15.07.2009, 13:44
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 3  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
Код AS1/AS2:
textX.onMotionFinished = function()
          { 
               if(!this.endTween)  // вот так нельзя..хотя очень хотелось бы
               {
                    textX.yoyo();
                    endTween = true;
               } else {
                    textX.stop();
               }
          }
...вот так думалось

Старый 15.07.2009, 13:48
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Кстати, зря Вы так говорите, что из твина не достучаться до твинируемого объекта.

Гляньте реализацию класса в {system_drive}\{user}\AppData\Local\Adobe\Flash CS3\en\Configuration\Classes\mx\transitions\Tween. as


Код AS1/AS2:
public var isPlaying:Boolean;
public var obj:Object;
Этого, думаю, хватит.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
dimarik ага спс большое, тогда все легко решается)..

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

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

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


 


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


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