Просмотр полной версии : переливание цвета
SecretNik
14.08.2005, 09:17
Товарищи!!!
Понимаете, есть задумка, в общем надо сделать переливание цвета (например из зеленого в желтый), но у меня не получается. Я пробовал делать с пмощью motion tween, но все равно никак... :(
вопроса не понял... ну да ладно...
можешь сделать переливание масками... и движущимся градиентом...
можешь твинами...
можешь классик написать или заюзать готовый...
глянь (http://silin.fatal.ru/misc/index.html), там, правда не из зеленого в желтый, но по аналогии, думаю соорудишь..
_global.MovieClip.prototype.SetColor = function (color:Number)
{
var n:String = String(Math.random());
this[n] = new Color (this);
this[n].setRGB (color);
delete n;
delete this[n];
}
//----------------------------------------------------------------------------------------------------
_global.MovieClip.prototype.ColorFade = function (newColor:Number, easeType:Function, time:Number, direction:Boolean)
{
var mc_mc:MovieClip = this.createEmptyMovieClip (String (Math.round (Math.random () * 999999999)), this.getNextHighestDepth ());
var n_color:Color = new Color (mc_mc);
n_color.setRGB (newColor);
var n_color_r:Number = n_color.getTransform ().rb;
var n_color_g:Number = n_color.getTransform ().gb;
var n_color_b:Number = n_color.getTransform ().bb;
mc_mc.removeMovieClip ();
var c_color:Color = new Color (this);
var c_color_r:Number = c_color.getTransform ().rb;
var c_color_g:Number = c_color.getTransform ().gb;
var c_color_b:Number = c_color.getTransform ().bb;
var ratio_r:Number = n_color_r - c_color_r;
var ratio_g:Number = n_color_g - c_color_g;
var ratio_b:Number = n_color_b - c_color_b;
if (direction)
{
var from:Number = 1;
var to:Number = 0;
}
else
{
var from:Number = 0;
var to:Number = 1;
}
var t:mx.transitions.Tween = new mx.transitions.Tween (this, "", easeType, from, to, time, true);
t.addListener ({onMotionChanged:function ()
{
c_color.setRGB ((c_color_r + ratio_r * arguments[1]) << 16 | (c_color_g + ratio_g * arguments[1]) << 8 | (c_color_b + ratio_b * arguments[1]));
}});
return t;
};
Использование:
my_mc.SetColor (0xFF0000);
my_mc.ColorFade (0x0000FF, mx.transitions.easing.Regular.easeOut, 5);
где "my_mc" - ваш MovieClip.
Жачем Motion, когда есть Shape?
TERRORist
15.08.2005, 02:56
Баги разные важны, баги всякие нужны.
Под шумок: надо контрастный цвет подбирать динамически по известным ra ga ba.
(напомню что контрастный, скажем, зеленому - фиолетовый)
мысли, скриптик есть у кого??? :(
Я вот писал что-то для яркости и контраста ...
_global.MovieClip.prototype.addProperty ("_brightness", function ()
{
if (typeof (this._brightness_) != "number")
{
this._brightness_ = 100;
}
return this._brightness_;
}, function (v:Number)
{
this._brightness_ = v;
var color:Color = new Color (this);
var c:Number = 100;
if (typeof (this._contrast_) == "number")
{
c = this._contrast_;
}
color.setTransform ({ra:c, rb:2.55 * v - 255, ga:c, gb:2.55 * v - 255, ba:c, bb:2.55 * v - 255, aa:100, ab:100});
});
//--------------------------------------------------------------------------------------------------------------------------------
_global.MovieClip.prototype.addProperty ("_contrast", function ()
{
if (typeof (this._contrast_) != "number")
{
this._contrast_ = 100;
}
return this._contrast_;
}, function (v:Number)
{
this._contrast_ = v;
var color:Color = new Color (this);
var b:Number = 0;
if (typeof (this._brightness_) == "number")
{
b = 2.55 * this._brightness_;
}
color.setTransform ({ra:v, rb:b, ga:v, gb:b, ba:v, bb:b, aa:100, ab:100});
});
TERRORist
15.08.2005, 17:22
гриша, спасибо, но боюсь, не поможет.
слушайте, я вроде слово фиолетовый красным не далал. шайтан!)
мож какой модератор возомнил себя великим дизайнером?) и подсветил???
щас еще экскремент проведу на модераторах:
(напомню что контрастный, скажем, синему - желтый)
TERRORist
15.08.2005, 17:24
шайтан! обратно кремовым цветом стал!!!)
TERRORist
16.08.2005, 15:42
Люди памагите памираю ум закипает щас из ухов польется все вам здеся забрызгаюююююуууууууу!!!!!!!!!
Ну допустим у меня не ra ga ba а HUE (ХУЁ - это не то что Вы подумали. Это компонент - "оттенок") hue=(0,255)
контрастный к цвету h1 считается вроде так:
h2=h1+128;
if(h2>255)h2-=255;
TERRORist
21.08.2005, 00:55
up___
Adrinalin
21.08.2005, 08:58
Зайди на мой сайт http://mults2004.narod.ru , статья (урок) Морфинг..... там всё написано подробно. ;)
Переливание цвет и трансформация объекта в другой - морфинг...запомни!
TERRORist
21.08.2005, 12:19
Зайди на мой сайт http://mults2004.narod.ru , статья (урок) Морфинг..... там всё написано подробно. ;)
Переливание цвет и трансформация объекта в другой - морфинг...запомни!
Ну вот блин я мучаюсь тут и как всегда приходит мессия-булькающий чайник и все мне бедному разъясняет!!!!!!!!!!((((
Я правила форума помню, "не оскорбляй", "не убий"....
И типа при всем моем уважении засунь свой "морфинг" себе сам знаешь куда!(ну ты я думаю поймешь куда, не впервой наверное). "Запомни" б**. Еще говорит мне что запоминать а что нетнах. Сам бы почитал прежде чем советовать...
И глупо называть страничку сайтом.
2 TERRORist: грубо... можно было и промолчать. А то как танк на конницу :)
SecretNik
21.08.2005, 20:48
Люди, извините, но я уже давно понял, что это очень просто сделать с помощью shape tween, так что пожалуйста не ссорьтесь!!!
SecretNik
21.08.2005, 20:50
и все-равно всем спасибо.
artcraft
21.08.2005, 21:38
nuran, твой метод рулит!
TERRORist
22.08.2005, 00:16
2 TERRORist: грубо... можно было и промолчать. А то как танк на конницу :)
C бульбуляторами только так надо!) На поем сайте бан получил бы!(там в правилах пункты "Написал детский бред- БАН." Два бана бы заработал!) Набо наверное отдельную тему создавать, а то так никто и не поможет.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.