Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   переливание цвета (http://www.flasher.ru/forum/showthread.php?t=67888)

SecretNik 14.08.2005 09:17

переливание цвета
 
Товарищи!!!
Понимаете, есть задумка, в общем надо сделать переливание цвета (например из зеленого в желтый), но у меня не получается. Я пробовал делать с пмощью motion tween, но все равно никак... :(

MIX-er 14.08.2005 22:55

вопроса не понял... ну да ладно...
можешь сделать переливание масками... и движущимся градиентом...
можешь твинами...
можешь классик написать или заюзать готовый...

silin 14.08.2005 22:58

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

nuran 14.08.2005 23:08

Код:

_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.

Norb 14.08.2005 23:29

Motion tween?
 
Вложений: 1
Жачем Motion, когда есть Shape?

TERRORist 15.08.2005 02:56

Баги разные важны, баги всякие нужны.

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

nuran 15.08.2005 03:30

Я вот писал что-то для яркости и контраста ...


Код:

_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;


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

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