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

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

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

Регистрация: Apr 2006
Сообщений: 2
По умолчанию Плавная остановка Tween

Здравствуйте. Столкнулся вот с такой проблемой:
Код AS1/AS2:
import mx.transitions.Tween;
var myTween:Tween = new Tween(img1_mc, "_rotation", mx.transitions.easing.Elastic.easeOut, 0, Stage.width-img1_mc._width, 10, true);
myTween.onMotionFinished = function() {
	myTween.yoyo();
};
myTween.stop();
 
img1_mc.onRollOver = function() {
	myTween.resume();
};
 
img1_mc.onRollOut = function() {
	myTween.stop();
};
Подскажите плз. как сделать плавную остановку вращения при onRollOut ?

Старый 13.02.2009, 12:07
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 2  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Можно создать новый Tween, в котором указать
Код AS1/AS2:
mx.transitions.easing.Strong.easeOut

Старый 13.02.2009, 12:10
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 3  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
не вполне ясно чего ты добиваешься
попробуй что-нибудь такое
Код AS1/AS2:
var speed:Number = 0;
var k:Number = 0;
var maxSpeed:Number = 2;
 
img1_mc.onRollOver = function() {
	k = 0.1;
};
 
img1_mc.onRollOut = function() {
	k = -0.2;
};
 
img1_mc.onEnterFrame = function() {
	this._rotation += speed += k*(maxSpeed-speed);
	if (speed<0) {
		k = 0;
		speed = 0;
	}
};

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

Регистрация: Jan 2009
Адрес: Одесса
Сообщений: 309
Отправить сообщение для Fatality с помощью ICQ
Если я правильно вас понял, то можно так:
Код AS1/AS2:
import mx.transitions.Tween;
import mx.transitions.easing.*;
var myTween:Tween = new Tween(img1_mc, "_rotation", Elastic.easeOut, 0, 360, 10, true);
myTween.stop();
img1_mc.onRollOver = function()
{
	myTween.onMotionFinished = function()
	{
		myTween.yoyo();
	};
	myTween.resume();
};
 
img1_mc.onRollOut = function()
{
	delete myTween.onMotionFinished;
};


Последний раз редактировалось Fatality; 13.02.2009 в 12:32.
Старый 13.02.2009, 12:27
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 5  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Привет!
мой вариант:
Код AS1/AS2:
var a;
img1_mc.onRollOver = function() {
	a = 25;
	this.onEnterFrame = function() {
		this._rotation += a;
	};
};
img1_mc.onRollOut = function() {
	id = setInterval(stopClip, 500);
};
function stopClip(mc) {
	if (a>0) {
		a-=1;
	} else {
		delete mc.onEnterFrame;
		clearInterval(id);
	}
}

Старый 13.02.2009, 12:45
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Жень Шень, id надо бы тоже объявить, иначе неучтенные запущенные интервалы (и головная боль) гарантированы
да и clearInterval(id); перед запуском интервала тоже не помешает (из тех же соображений)

Старый 13.02.2009, 20:19
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 7  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
to silin
Согласен, что не мешало бы было объявить id, а тем более очистить перед запуском.
Но, трейс показывал, что он таки удалялся!!
Код AS1/AS2:
function stopClip(mc) {
	trace(a)
	if (a>0) {
		a-=1;
	} else {
		delete mc.onEnterFrame;
		clearInterval(id);
	}
}
Хм,а в принципе не должен быть в области видимости функции stopClip?
Да, в твоем примере onEnterFrame тоже ведь "болтается" в холостую при нулях?

Старый 13.02.2009, 21:06
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 8  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
ну да - "болтается", но он один и все, что в нем происходит под контролем..
а с интервалами всегда есть риск нарваться на параллельно работающий, если специально не подстраховаться..
я не именно об этом примере, а вообще..
ps. да и в этом примере легко получается ситуация когда я навожу мышь, мувик начинает крутится и тормозит (хотя по задумке не должен) - это пашет неучтенный stopClip, trace(a) должен бы его показать

Старый 14.02.2009, 06:44
Groder вне форума Посмотреть профиль Отправить личное сообщение для Groder Найти все сообщения от Groder
  № 9  
Ответить с цитированием
Groder

Регистрация: Apr 2006
Сообщений: 2
По умолчанию Супер!

Всем огромное спасибо!
Fatality - Отдельный Респект...

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

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

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


 


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


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