Javascript 长十进制数:分别提取ARGB值

Javascript 长十进制数:分别提取ARGB值,javascript,html,flash,Javascript,Html,Flash,我从Flash应用程序中获得了ARGB格式的颜色值(a是alpha/透明度值)。 我必须在Javascript中将长十进制数转换为RGB/十六进制数 您知道如何从一个长(8位)数字中提取单个R、G、B和A值吗 下面是我的函数,它将数字转换为十六进制,但不够好,因为它需要单独转换值(R、G、B、a): 函数decimalToHex(num) { 如果(num==null | | num==undefined){return“#FFFFFF”} var intNum=(parseInt(num,10

我从Flash应用程序中获得了ARGB格式的颜色值(a是alpha/透明度值)。

我必须在Javascript中将长十进制数转换为RGB/十六进制数

您知道如何从一个长(8位)数字中提取单个R、G、B和A值吗

下面是我的函数,它将数字转换为十六进制,但不够好,因为它需要单独转换值(R、G、B、a):

函数decimalToHex(num)
{
如果(num==null | | num==undefined){return“#FFFFFF”}
var intNum=(parseInt(num,10))&0x00FFFFFF;
var strNum=intNum.toString(16);
而(strNum.length使用匹配:

var argb = '12345678';
var bits = argb.match(/\d\d/g);

alert(bits);  // ['12', '34', '56', '78']
现在,位位于一个数组中,您可以将其转换为十六进制并连接以获得十六进制RGB值。如果原始值实际上是十进制值,则每个值(000到255)可能允许3个字符,您可能需要:

var argb= '000101234034'
var bits = argb.match(/\d\d\d/g); // ['000', '101', '234', '034']

看看是否有帮助。

我认为您只需要将A、R和G值按相应的位数进行移位。不过,使用掩码,您就走上了正确的轨道。B不需要移位,因为它已经是最低有效值。为什么要关心位?原始数字必须是类型编号或字符串-如果是数字的话它必须转换为字符串。输出必须是字符串类型。请发布一些示例数据,在黑暗中捕鱼令人沮丧。
var argb= '000101234034'
var bits = argb.match(/\d\d\d/g); // ['000', '101', '234', '034']