Flash在转换16进制色彩时有一个Bug,当某一颜色值为00时,Flash自动取00的值为0,它计算实值,认为是空。这样类似于#00FFCC得色值会被转换为#FFCC。
Quester为此写了一个函数进行补位计算,希望对遇到此问题的朋友有些帮助。
function RGB2HEX (R, G, B) {
// 补位操作
RR = R.toString(16).toUpperCase();
if (length(RR)<2) {
RR = "0" add RR;
}
GG = G.toString(16).toUpperCase();
if (length(GG)<2) {
GG = "0" add GG;
}
BB = B.toString(16).toUpperCase();
if (length(BB)<2) {
BB = "0" add BB;
}
// 用于网页 的 Hex 值
Hex = "#" add RR add GG add BB;
return Hex;
}
代码拷贝框
function RGB2HEX (R, G, B) {
// 补位操作
RR = R.toString(16).toUpperCase();
if (length(RR)<2) {
RR = "0" add RR;
}
GG = G.toString(16).toUpperCase();
if (length(GG)<2) {
GG = "0" add GG;
}
BB = B.toString(16).toUpperCase();
if (length(BB)<2) {
BB = "0" add BB;
}
// 用于网页 的 Hex 值
Hex = "#" add RR add GG add BB;
return Hex;
}
[Ctrl+A 全部选择 然后拷贝]
下面是秋水精减后的代码:
function RGB2HEX (R, G, B) {
// 补位操作
RR = (256 + R).toString(16).toUpperCase().substr(1);
GG = (256 + G).toString(16).toUpperCase().substr(1);
BB = (256 + B).toString(16).toUpperCase().substr(1);
// 用于网页 的 Hex 值
Hex = "#" add RR add GG add BB;
return Hex;
}
代码拷贝框
function RGB2HEX (R, G, B) {
// 补位操作
RR = (256 + R).toString(16).toUpperCase().substr(1);
GG = (256 + G).toString(16).toUpperCase().substr(1);
BB = (256 + B).toString(16).toUpperCase().substr(1);
// 用于网页 的 Hex 值
Hex = "#" add RR add GG add BB;
return Hex;
}
[Ctrl+A 全部选择 然后拷贝]