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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.06.2008, 22:21
Dr.OH вне форума Посмотреть профиль Отправить личное сообщение для Dr.OH Найти все сообщения от Dr.OH
  № 1  
Ответить с цитированием
Dr.OH

Регистрация: Aug 2003
Сообщений: 299
Отправить сообщение для Dr.OH с помощью ICQ
По умолчанию Tween.yoyo

нужно сделать достаточно простой эффект - выезжание меню. работать он должен примерно так - навели мышку - меню начало выезжать, убрали - уехало обратно, причем путь назад меню должно начать именно с того места, где оно было. Решил сделать на Tween'ах, как самый логичный вариант. Но столкнулся со следующей проблемой - если yoyo вызывать до того, как мувик пройдёт весь свой путь, то почему-то изменяется значение finish. Как от этого избавиться? Т.е. чтобы при повторном наведении меню должно доезжать до изначальной точки, а не до той, в которой оно остановилось в последний раз.

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

Регистрация: Jun 2007
Адрес: Челябинск
Сообщений: 303
Отправить сообщение для dmitriev с помощью ICQ
Непонял при чем тут yoyo если честно...
Я делал так.

В меню подложи мувик с именем bt
Код:
var openTime = 1; //это типа за одну секунду он открывается

bt.onRollOver = bt.onDragOver = function ()
{
var time = (200 - this._parent._x)/200;
new Tween (this._parent, "_x", Strong.easeOut, this._parent._x, 200, time, true);
}

bt.onRollOut = bt.onDragOut = function ()
{
var time = this._parent._x/200;
new Tween (this._parent, "_x", Strong.easeOut, this._parent._x, 0, time, true);
}
вот как то так можно
__________________
O God! The Aftermath.

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

Регистрация: Aug 2003
Сообщений: 299
Отправить сообщение для Dr.OH с помощью ICQ
Большое спасибо за комментарий, но я решил проблему немного по другому. Этот вариант немного неудобен, т.к. приходится создавать бесконечное количество экземпляров класса Tween, которые остаются висеть в памяти. Я решил все сделать на одном экземпляре. Получилось примерно так (my_mc - это клип, который нужно двигать):
Код:
import mx.transitions.Tween;
import mx.transitions.easing.*;

tween_start = this['my_mc']._x;
tween_finish = 350;
tween_time = 2;
tween_obj = this['my_mc'];
sub_menu_tween = new Tween(tween_obj, "_x", none, tween_start, tween_finish, tween_time, true);
// не совсем понимаю, для чего нужна следующая строка,
// но без этого не работает
sub_menu_tween.start();  
sub_menu_tween.stop();
stop();


function showSubMenu(pos) {
sub_menu_tween.continueTo(tween_finish,tween_time/(tween_finish-tween_start)*(tween_finish-sub_menu_tween.position));
}
function hideSubMenu() {
sub_menu_tween.continueTo(tween_start, tween_time/(tween_finish-tween_start)*(sub_menu_tween.position-tween_start));
}

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

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

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


 


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


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