Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы (http://www.flasher.ru/forum/forumdisplay.php?f=10)
-   -   Rgb блин!!!!!!! (http://www.flasher.ru/forum/showthread.php?t=51770)

AlexIII 21.11.2003 12:03

Rgb блин!!!!!!!
 
Народ помогите.

Написал формулу для заливки объекта определенным цветом зависящим от введенного значения:

function SetColor(Nameobject,minColor,maxColor, minValue, maxValue, Value) {

myColor = minColor + ((maxColor-minColor)*(Value-minValue))/maxValue-minValue;

RGB = (maxColor-Math.round(myColor) << 16 | maxColor-Math.round(myColor) << 8 | maxColor-Math.round(myColor));

myColor = new Color(Nameobject);
myColor.setRGB(RGB);
}

minValue, maxValue мин и макс значения, берутся из массива.
minColor,maxColor вводятся вручную.
Value значение для которого рассчитывается цвет.

Так вот, формула работает только по какому-нибудь одному цвету. К примеру от светложелтого то то насыщенного желтого. А мне надо чтобы она работала по всем трем составляющим цвета. К примеру minColor будет желтый, а maxColor будет зеленый. Но уменя нифига не выходит.

Помогите!!!!!!!

Пушистик 21.11.2003 15:52

немешало бы превратить значение в Hex!то есть 0xRRGGBB!и еще можно альфу учесть!
а ваще функция какая-то непонятная...зачем так извращатся!если можно все сделать через стандартные функции!
см. Color.setTransform(obj);!

AlexIII 21.11.2003 16:02

Да мне надо закрасить карту с помощью градации цветов, да и еще чтобы цвет зависел от введенных значений,
а Color.setTransform(obj) не подходит.
Но я уже ее написал, вот:

function SetColor(Nameobject,minnColor,maxxColor, minnValue, maxxValue, Vvalue) {
var minColor = minnColor.toString();
var maxColor = maxxColor.toString();
if (minColor == 0){
var irmin = 0;
var igmin = 0;
var ibmin = 0;
}
else {
var irmin = minColor.substring(0, 3);
var igmin = minColor.substring(3, 6);
var ibmin = minColor.substring(6, 9);
}
if (maxColor == 0){
var irmax = 0;
var igmax = 0;
var ibmax = 0;
}
else{
var irmax = maxColor.substring(0, 3);
var igmax = maxColor.substring(3, 6);
var ibmax = maxColor.substring(6, 9);
}
minValue = minnValue/3;
maxValue = maxxValue/3;
Value = Vvalue/3;
r = Number(irmin) + ((Number(irmax)-Number(irmin))*(Number(Value)-Number(minValue)))/Number(maxValue)-Number(minValue);
g = Number(igmin) + ((Number(igmax)-Number(igmin))*(Number(Value)-Number(minValue)))/Number(maxValue)-Number(minValue);
b = Number(ibmin) + ((Number(ibmax)-Number(ibmin))*(Number(Value)-Number(minValue)))/Number(maxValue)-Number(minValue);
RGB = (r << 16 | g << 8 | b);
myColor = new Color(Nameobject);
myColor.setRGB(RGB);
}

Не подскажешь как написать функцию с необязательным параметром???

dee2 21.11.2003 16:47

на flash xchange где то валялся отличный компонент color picker
посмотри, может поможет

Пушистик 22.11.2003 17:14

любой параметр может быть необязательным!:)обычно его ставят последним в списке параметров!
ну конешна ты должен учесть "необязательность" этого параметра в самой функции!

Код:

function yo(mes) {
    if (arguments.length == 0) {
        trace("Ни одного параметра не задано!");
    } else {
        trace(mes);
    }
}
yo("Flash");
// yo();



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

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