主题:  关于随机产生颜色的下列语句我怎么不明白?请问高手

ll126

职务:普通成员
等级:1
金币:0.0
发贴:6
#12001/9/19 10:03:24
on (release) {
red = Math.floor (math.random ( )*255);
green = Math.floor (math.random ( )*255);
blue = Math.floor (math.random ( )*255);
_root.block.ctrl_color.setRGB( red<<16|green<<8|blue );
}//这是怎么移位的?



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#22001/9/19 13:17:54
setRGB()的参数格式是:rrggbb,16进制数。
每一位16进制数可用4位2进制表示,所以,用二进制向左移动16也就相当于用16进制向左移4位.
例如,先有3个变量r=CC,g=BB,b=AA,则r<<16后其值变为CC0000,g<<8其值变为BB00,由于0|0=0,0|1=1,所以,red<<16|green<<8|blue ==red<<16+green<<8+blue.于是结果得到CCBBAA

这个帖子也有相关的内容:
www.5dmedia.com/bbs/archivecontent.asp?id=119155

请不要重复发帖

编辑历史:[这消息被janlay编辑过(编辑时间2001-09-19 14:02:53)]


ll126

职务:普通成员
等级:1
金币:0.0
发贴:6
#32001/9/20 10:11:01
谢谢版主