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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

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

Регистрация: Dec 2003
Адрес: SPb
Сообщений: 8
Tip Как плавно сделать анимацию ??

Я аттачментом всталяю мувик и прописыванию для него события при наезде на него мышью:

Mc01.onRollOver = function () {
for (i=0;i <=20;i++){
setProperty(Mc01,_xscale,100+i);
setProperty(Mc01,_yscale,100+i);
}
}

т.е. изменение масштаба при ролловере.
Т.к. расчет происходит в одном фрейме - то изменения происходят сразу со 100% на 120%.

Подскажите пожалуста как мне написать код чтобы изменение проиходило плавно??

best regards megmage
__________________
don't think - just do it

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

Регистрация: Nov 2002
Адрес: Moskow Stone Jungles Статус: Бывший беспредельщик Любит: Гонять нубов в поиск Пользователь: № 0.5
Сообщений: 4,999
Отправить сообщение для Dimonius с помощью ICQ Отправить сообщение для Dimonius с помощью AIM Отправить сообщение для Dimonius с помощью MSN Отправить сообщение для Dimonius с помощью Yahoo
Через интервалы.

setInterval()
__________________
Учиться и, когда придет время, прикладывать усвоенное к делу - разве это не прекрасно! Беседовать с другом, приехавшим издалека, - разве это не радостно! Не быть по достоинству оцененным светом и не таить обиду - разве это не возвышенно!

Старый 18.12.2003, 14:42
opex вне форума Посмотреть профиль Отправить личное сообщение для opex Найти все сообщения от opex
  № 3  
opex
 
Аватар для opex

Регистрация: Sep 2003
Адрес: Где-то рядом.
Сообщений: 686
Отправить сообщение для opex с помощью ICQ Отправить сообщение для opex с помощью Skype™
зачем же так сложно юзай onEnterFrame

Код:
i = 1;
_root.onEnterFrame = function() {
	if (_root.but.hitTest(_xmouse, _ymouse, true)) {
		if (_root.but._xscale<=120) {
			_root.but._xscale += i;
			_root.but._yscale += i;
		}
	} else {
		if (_root.but._xscale>=100) {
			_root.but._xscale -= i;
			_root.but._yscale -= i;
		}
	}
};
создай на руте мув под именем but и швырни этот код в первый кадр
__________________
Бойтесь китайцев, компы приносящих!

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

Регистрация: Dec 2003
Адрес: SPb
Сообщений: 8
2 Dimonius - я пробовал через setInterval неработает или кривые руки мешают мне сделать правильно

2 OPEX - понимаешь мне надо сделать именно на RollOver и RollOut == конечно можно сделать по замороченно через createEmptyMovieClip и добавить в него функцию изменения масштаба, а потом на RollOver просто поменять клипы местами.. хотелось всё сделатьв один приход)
__________________
don't think - just do it

Старый 18.12.2003, 16:22
opex вне форума Посмотреть профиль Отправить личное сообщение для opex Найти все сообщения от opex
  № 5  
opex
 
Аватар для opex

Регистрация: Sep 2003
Адрес: Где-то рядом.
Сообщений: 686
Отправить сообщение для opex с помощью ICQ Отправить сообщение для opex с помощью Skype™
ну если не можеш через интервалы то можно конечно придумать и чтото типо этого

Код:
p = 0;
_root.but.onRollOver = function() {
	p = 1;
};
_root.onEnterFrame = function() {
	if (_root.but._xscale<=120 && p == 1) {
		_root.but._xscale += 1;
		_root.but._yscale += 1;
	}
};
__________________
Бойтесь китайцев, компы приносящих!

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

Регистрация: Jul 2002
Адрес: Russia Federation Moscow
Сообщений: 779
Отправить сообщение для 2K WebStudio с помощью ICQ
Знаешь, мрожет я ничего и не понимаю, но может тебе помогут эти комментарии))
Код:
i = 1;
_root.onEnterFrame = function() {
	if (_root.but.hitTest(_xmouse, _ymouse, true)) {
//Этот оператор if смотрит, на клипе мышка, или нет!!!
		if (_root.but._xscale<=120) {
//Если да, то он проверяет, масштаб мувика на <=120!
			_root.but._xscale += i;
			_root.but._yscale += i;
//И меняет масштаб, если меньше 120!
		}
	} else {
//Если мышка не на клипе, то он доводит масштаб до 100!!!
		if (_root.but._xscale>=100) {
			_root.but._xscale -= i;
			_root.but._yscale -= i;
		}
	}
};
Вот только одного не пойму!
Нет, чтобы попробовать вставить!!!

Старый 18.12.2003, 16:29
opex вне форума Посмотреть профиль Отправить личное сообщение для opex Найти все сообщения от opex
  № 7  
opex
 
Аватар для opex

Регистрация: Sep 2003
Адрес: Где-то рядом.
Сообщений: 686
Отправить сообщение для opex с помощью ICQ Отправить сообщение для opex с помощью Skype™
2K WebStudio я бы даже сам так не смог
__________________
Бойтесь китайцев, компы приносящих!

Старый 18.12.2003, 16:51
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 8  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
а я бы покрасил в зеленое :)
Код:
MovieClip.prototype.scaleTo = function(scale) {
	var step = (scale-this._xscale)*.1;
	this._xscale += step;
	this._yscale = this._xscale;
	return Math.abs(step)>.1;
};
mc.onRollOver = function() {
	this.onEnterFrame = function() {
		if (!this.scaleTo(150)) {
			delete this.onEnterFrame;
		}
	};
};
mc.onRollOut = function() {
	this.onEnterFrame = function() {
		if (!this.scaleTo(100)) {
			delete this.onEnterFrame;
		}
	};
};
Вложения
Тип файла: zip 4megmage.zip (4.7 Кб, 116 просмотров)

Старый 18.12.2003, 16:57
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 9  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
или можно еще так сделать:
Код:
MovieClip.prototype.scaleTo = function(scale) {
	this.scaleTo.scale = scale;
	this.onEnterFrame = function() {
		var step = (this.scaleTo.scale-this._xscale)*.1;
		this._xscale += step;
		this._yscale = this._xscale;
		if (Math.abs(step)<.1) {
			delete this.onEnterFrame;
		}
	};
};
mc.onRollOver = function() {
	this.scaleTo(150);
};
mc.onRollOut = function() {
	this.scaleTo(100);
};
так пользоваться попроще, но MovieClip.scaleTo тогда не такая универсальная


Последний раз редактировалось Nox Noctis; 18.12.2003 в 17:00.
Старый 18.12.2003, 16:57
opex вне форума Посмотреть профиль Отправить личное сообщение для opex Найти все сообщения от opex
  № 10  
opex
 
Аватар для opex

Регистрация: Sep 2003
Адрес: Где-то рядом.
Сообщений: 686
Отправить сообщение для opex с помощью ICQ Отправить сообщение для opex с помощью Skype™
загнул однако
__________________
Бойтесь китайцев, компы приносящих!

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

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

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


 


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


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