Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   не правельно работает метод setRGB? (http://www.flasher.ru/forum/showthread.php?t=81757)

STILL.05 27.06.2006 10:45

не правельно работает метод setRGB?
 
Код:

function rgb(r:Number, g:Number, b:Number):Number {
        // функция для вычисления цвета
        var res_r:String = r.toString(16);
        if (res_r == 0) {
                res_r = "00";
        }
        var res_g:String = g.toString(16);
        if (res_g == 0) {
                res_g = "00";
        }
        var res_b:String = b.toString(16);
        if (res_b == 0) {
                res_b = "00";
        }
        var res_str:String = res_r+res_g+res_b;
        return parseInt(res_str, 16);
}
var color:Color = new Color(clip_mc);
color.setRGB(rgb(253,11,10)); // закрашивается в бирюзовый цвет
color.setRGB(rgb(253,11,0)); // закрашивается в зеленый цвет
color.setRGB(rgb(253,0,0)); // закрашивается в красный цвет

Кто нибудь может объяснить что за беда с этим методом?!?!?!

Cvazimodo 27.06.2006 11:11

Код:

function rgb(r:Number, g:Number, b:Number):Number {
        // функция для вычисления цвета
        var res_r:String = r.toString(16);
        res_r = strpad(res_r, 2, '0');
        var res_g:String = g.toString(16);
        res_g = strpad(res_g, 2, '0');
        var res_b:String = b.toString(16);
        res_b = strpad(res_b, 2, '0');
        var res_str:String = '0x' add res_r add res_g add res_b;
        return parseInt(res_str, 16);
}
function strpad(str:String, len:Number, stradd:String) {
        while (length(str) < len) {
                str += stradd;
        }
        return str;
}

var color:Color = new Color(clip_mc);
color.setRGB(rgb(253,11,10)); // закрашивается в бирюзовый цвет
color.setRGB(rgb(253,11,0)); // закрашивается в зеленый цвет
color.setRGB(rgb(253,0,0)); // закрашивается в красный цвет

Кое-что изменил. Там цвет при переводе из 10-ной системы не всегда был двузначным. Фукция strpad добавляет какой-либо символ в конец строки до нужной нам длины.

STILL.05 27.06.2006 11:18

спасибо!! .. я все понял .... только вот небольшая поправочка в твой метод :-)
Код:

function strpad(str:String, len:Number, stradd:String) {
        while (length(str) < len) {
                str =stradd + str;
        }
        return str;
}

нолик должен быть в начале а не в конце )))))

Cvazimodo 27.06.2006 11:19

Ну да... компилятор из меня никудышный :)


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

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