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 全部选择 然后拷贝]
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器