Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Плавный переход от одного цвета к другому (http://www.flasher.ru/forum/showthread.php?t=61220)

Dr. Flare 29.07.2004 09:19

Плавный переход от одного цвета к другому
 
На мувик пишу

onClipEvent(load){
my_color = new Color(this);
my_color.setRGB(0xEEEEEE);
}
onClipEvent(enterFrame){
if (this.hitTest( _root._xmouse, _root._ymouse, true )){
my_color.setRGB(0xD2EBFC);
}
else
my_color.setRGB(0xEEEEEE);
}

А как зделать чтобы при hitTest был переход от одного цвета к другому плавный туда и обратно (примерно за 5 кадров) как при motion только скриптом?

Спасибо

ВАРАН 29.07.2004 13:41

Насколько я вкурсе этим способом динамически ,тойсть плавно изменить цвет нельзя.Я когда-то давно делал феньку с изменением цветов.Для этого я использовал вот что:

myColor = new Color(myMovie)
newColor = new Object();

newColor.rb = 244 //красная компонента
newColor.gb = 112 //зелёная компонента
newColor.bb = 90 //синяя компонента

myColor.setTransform(newColor);

Потом я заменил числа на переменные типо того:

newColor.rb = varR
newColor.gb = varG
newColor.bb = varG

И таким образом плавно изменяя эти переменные до нужного значения можно добиться желаемого результата. А вообще про это подробно в хэлпе написано.

Nox Noctis 29.07.2004 14:15

но есть способ лучше :)

основная проблема тут в том, что RGB - это удобная машинная цветовая система, но с точки зрения банальной эрудиции она неудобна и не особо логична :) например чтобы сделать плавный переход по спектру от оранжевого к фиолетовому в RGB придется изобретать велосипед.

но есть еще много всяких систем представления цвета - например HSL (или HSB). это более наглядная система:
(насыщенность)-(базовый цвет)-(яркость)

соответственно для плавного перехода между цветами одинаковой насыщенности и яркости достаточно менять всего один параметр - базовый цвет.

взять методы перевода представления цветов из одной системы в другую можно, например, у питера холла

Dr. Flare 29.07.2004 14:47

Ого.

Ну вы меня пригрузили.
Если честно я то думал что все еть намного проще.

А так как я ActionScript знаю пока еще не очень хорошо и приминить его могу только в ограниченно сложных (необходимых) случаях то разобраться в том что я нашел у Питера Холла я просто не смогу. А если даже смогу, то в каком-то готовом примерчике.

В общем спасибо Вам за помощь. Придется в каждом мувике делать анимацию по изменению цвета.

Dr. Flare 29.07.2004 16:05

Так ладно с этим разобрались.

В общем я делаю карту Казахстана по областям. (см. файл)
Вот мне еще кое-что интересно.

В приложенном файле я на каждый мувик поставил один и тот-же скрипт, но можно же зделать прототипами и я попытался, но у меня не получилось (в файле есть отдельная область с надписью) на нее я пытался и влепить, а если бы получилось, то влепил бы на все :) . Посмотрите файл может поправите?

Спасибо.

Dr. Flare 29.07.2004 16:07

Вложений: 1
Файл забыл прикрепить :D

silin 29.07.2004 22:15

Вложений: 1
вот тебе карта с прототипом (имена тока поменял для удобства)
и примерчик с цветами

Dr. Flare 30.07.2004 08:21

2 silin

Оригинальное решение (номирами instance писать - на самом деле удобнее) - я бы не додумался. Спасибо большое.

Но все же мне интересно почему в моем примере прототип не работал? А если не цифрами instance делать, то как тогда на все прототип поставить?
На счет примерчика с цветами - круто - но для меня далековато :( Спасибо еще раз.

Не вините меня - надеюсь в скором будущем я с Вами сравняюсь ;)

silin 30.07.2004 21:14

Вложений: 1
в твоем примере прототип задом наперед написан (посмотри внимательно)
и вызывается так, что по любому не может выполниться (onClipEvent (enterFrame) {this. map_enter();})
если мувики поименованы по всякому, можно создать массив ссылок на них (mc_a=[this.a,this.b,this.c]) и работать уже с ним :mc_a[0], mc_a[1] ..
а можно массив имен name_a=["a","b","c"] и обращаться к мувикам: this[name_a[0]], this[name_a[1]]..

Dr. Flare 02.08.2004 08:49

Спасибо понял. ;)


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

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