Actionscript 3 基于自定义范围的颜色比例?用十六进制?

Actionscript 3 基于自定义范围的颜色比例?用十六进制?,actionscript-3,math,colors,hex,Actionscript 3,Math,Colors,Hex,我如何创建一个自定义颜色比例理想的十六进制?从黄色到红色,取决于物体的高度?这是实现这一目标的正确方法还是有更好的方法而不必在最后转换 var r:int = 255; var b:int = 0; var maxHeight:int = 52; var minHeight:int = 21; var scale:int = 255 / (maxHeight-minHeight); var g:int = 255 - ((object.height-minHeight) * scale);

我如何创建一个自定义颜色比例理想的十六进制?从黄色到红色,取决于物体的高度?这是实现这一目标的正确方法还是有更好的方法而不必在最后转换

var r:int = 255;
var b:int = 0;
var maxHeight:int = 52;
var minHeight:int = 21;

var scale:int = 255 / (maxHeight-minHeight);

var g:int = 255 - ((object.height-minHeight) * scale);

var hexColor:uint = RGBtoHEX(r,g,b);

私有函数RGBtoHEX(r:int,g:int,b:int):uint
{

return r这是一个函数,允许您在0-1的范围内查找其他两个颜色值之间的颜色值。我认为它将满足您的需要

private function getBetweenColourByPercent(value:Number = 0.5 /* 0-1 */, highColor:uint = 0xFFFFFF, lowColor:uint = 0x000000):uint {
    var r:uint = highColor >> 16;
    var g:uint = highColor >> 8 & 0xFF;
    var b:uint = highColor & 0xFF;

    r += ((lowColor >> 16) - r) * value;
    g += ((lowColor >> 8 & 0xFF) - g) * value;
    b += ((lowColor & 0xFF) - b) * value;

    return (r << 16 | g << 8 | b);
}
私有函数getBetweenColorByPercent(值:Number=0.5/*0-1*/,highColor:uint=0xFFFFFF,lowColor:uint=0x000000):uint{
变量r:uint=highColor>>16;
变量g:uint=highColor>>8&0xFF;
变量b:uint=highColor&0xFF;
r+=((低颜色>>16)-r)*值;
g+=((低颜色>>8&0xFF)-g)*值;
b+=((低颜色&0xFF)-b)*值;

return(r这是一个函数,允许您在0-1的范围内查找其他两个颜色值之间的颜色值。我认为它将满足您的需要

private function getBetweenColourByPercent(value:Number = 0.5 /* 0-1 */, highColor:uint = 0xFFFFFF, lowColor:uint = 0x000000):uint {
    var r:uint = highColor >> 16;
    var g:uint = highColor >> 8 & 0xFF;
    var b:uint = highColor & 0xFF;

    r += ((lowColor >> 16) - r) * value;
    g += ((lowColor >> 8 & 0xFF) - g) * value;
    b += ((lowColor & 0xFF) - b) * value;

    return (r << 16 | g << 8 | b);
}
私有函数getBetweenColorByPercent(值:Number=0.5/*0-1*/,highColor:uint=0xFFFFFF,lowColor:uint=0x000000):uint{
变量r:uint=highColor>>16;
变量g:uint=highColor>>8&0xFF;
变量b:uint=highColor&0xFF;
r+=((低颜色>>16)-r)*值;
g+=((低颜色>>8&0xFF)-g)*值;
b+=((低颜色&0xFF)-b)*值;

返回(r非常感谢-我刚刚找到了一种方法,并对我的原始问题进行了文学更新。但这看起来可能是达到预期效果的一种很好的方法。干杯!非常感谢-我刚刚找到了一种方法,并对我的原始问题进行了文学更新。但这似乎是实现d的一种很好的方法红色效果,干杯!