as3位操作

目前看到的位操作大部分是用在图形的RGB/ARGB的处理,或者用在swf加密的处理。

下面是最简单的位操作,很容易理解

“<<” bitwise left shift 将 expression1 和 shiftCount 转换为 32 位整数,并将 expression1 中的所有位向左移动指定的位数,该数字由 shiftCount 转换所得的整数指定。

“>>” bitwise right shift 将 expression 和 shiftCount 转换为 32 位整数,并将 expression 中的所有位向右移动一定的位数,该数目由 shiftCount 转换得到的整数指定。

“>>>” bitwise unsigned right shift 该运算符与按位右移 (>>) 运算符基本相同,但不保留原始表达式的符号,因为左侧的位始终用 0 填充。

提取颜色组成成分

//24bit 不包含aphla通道
var color:uint = 0x112233;
00  11  22  33
------------------------------------------
var r:uint = color >> 16;
00  00  00  11
------------------------------------------
var g:uint = color >> 8 & 0xFF;//偏移8位 00  00  11  22 后做与运算
00  00  00  22
------------------------------------------
var b:uint = color & 0xFF;
00  00  00  33
------------------------------------------

//32bit 的ARBG的处理跟上面一样的原理
var color:uint = 0xff112233;
var a:uint = color >>> 24;
var r:uint = color >>> 16 & 0xFF;
var g:uint = color >>> 8 & 0xFF;
var b:uint = color & 0xFF;

合并颜色组成成分
主要是做或运算

//24bit
var r:uint = 0x11;
var g:uint = 0x22;
var b:uint = 0x33;
var color:uint = r << 16 | g << 8 | b;
//32bit
var a:uint = 0xff;
var r:uint = 0x11;
var g:uint = 0x22;
var b:uint = 0x33;
var color:uint = a << 24 | r << 16 | g << 8 | b;

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>