Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash α&x2B;RGB->;阿格?_Flash_Actionscript 3_Rgb - Fatal编程技术网

Flash α&x2B;RGB->;阿格?

Flash α&x2B;RGB->;阿格?,flash,actionscript-3,rgb,Flash,Actionscript 3,Rgb,在as3中,是否有将RGB颜色(例如0xFF0000)和alpha值(例如.5)转换为32位ARGB值的实用程序或函数 从ARGB到RGB+alpha 一些解释:位图数据可以在其构造函数中采用ARGB值,但在精灵中填充形状通常采用RGB值。我希望上述实用程序能够确保颜色匹配。 变量argb:int=(alpha24)&0xFF; 如果alpha可以用8位表示,那么这是可能的。例如,只需将32位ARGB值的每个区域映射为相应的变量 0x0ABCDEF1 α-0x0A 红色-0xBC 绿色-0xDE

在as3中,是否有将RGB颜色(例如0xFF0000)和alpha值(例如.5)转换为32位ARGB值的实用程序或函数

从ARGB到RGB+alpha

一些解释:位图数据可以在其构造函数中采用ARGB值,但在精灵中填充形状通常采用RGB值。我希望上述实用程序能够确保颜色匹配。


变量argb:int=(alpha24)&0xFF;

如果alpha可以用8位表示,那么这是可能的。例如,只需将32位ARGB值的每个区域映射为相应的变量

0x0ABCDEF1

α-0x0A

红色-0xBC

绿色-0xDE


蓝色-0xF1

A、R、G、B是视频卡使用的一种常见格式,用于允许纹理中的“纹理混合”和透明度。大多数系统对R、G和B仅使用8位,因此在PC中常见的32位字大小中,还有8位可用

The mapping is:

For Bits:
33222222 22221111 11111100 00000000
10987654 32109876 54321098 76543210

AAAAAAAA RRRRRRRR GGGGGGGG BBBBBBBB
00000000 RRRRRRRR GGGGGGGG BBBBBBBB
大概是这样的:

private function toARGB(rgb:uint, newAlpha:uint):uint{
  var argb:uint = 0;
  argb = (rgb);
  argb += (newAlpha<<24);
  return argb;
}

private function toRGB(argb:uint):uint{
  var rgb:uint = 0;
  argb = (argb & 0xFFFFFF);
  return rgb;
}
argb的私有函数(rgb:uint,newAlpha:uint):uint{
变量argb:uint=0;
argb=(rgb);

argb+=(newAlpha我真的无法为上面的优秀答案添加更多内容,但是更简单地说,alpha值是uint中的最后两位数字,例如

//white
var white:uint = 0xFFFFFF;

//transparent white
var transparent:uint = 0xFFFFFFFF;
刻度与往常一样,00=1 FF=0

希望这有助于

私有函数组合GB(a:uint,r:uint,g:uint,b:uint):uint{
private function combineARGB(a:uint,r:uint,g:uint,b:uint):uint {
            return ( (a << 24) | ( r << 16 ) | ( g << 8 ) | b );
        }

return((很抱歉,但您有点困惑:)…透明白色是0x00FFFFFF。alpha值是“0x”后的两个第一位数字,如0xAARRGGBB(alpha,红色,绿色,蓝色)。“00”(0x00)是0,“FF”(0xFF)是255,这将等同于alpha=1。干杯……啊,这就是为什么;)干杯