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;
}
代码拷贝框
[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;
}
代码拷贝框
[Ctrl A 全部选择 然后拷贝]
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




