2011年12月5日 星期一

[AS3] 漸層動畫 ← 使用位元移動(bitwise)運算子拆解和組合RGB色碼

private function separateRGB(_color:uint):Object{
return {_r24:_color >> 16, _g24:_color >> 8 & 0xff, _b24:_color & 0xff};
}
private function combineRGB(_r24:uint,_g24:uint,_b24:uint):uint{
return _r24 << 16 | _g24 << 8 | _b24;
}

位元移動(bitwise)運算子,參考Flash Help以下連結
FlashPlatform_reference__運算子(operators) _●& bitwise AND 運算子 及其以下其它相關運算子


,拜讀奶綠茶的文章

位元移動與RGB - milkmidi Blog









1001205_Graphics.beginGradientFill_3.swf


這漸層動畫系統資源吃得很兇,CPU運算使用率非常可觀,可按Stop鈕暫停。


拆解RGB色碼後,可分別針對R、G、B三色版的色碼(uint)做加或減等處理
之後再組合RGB色碼,套入為beginGradientFill()的引數
用Timer()不斷更新即可得漸層動畫

請參考:

[AS3] Graphics.beginGradientFill() → 漸層填色



//拆解RGB色碼及回傳
private function separateRGB(_color:uint):Object{
   return {_r24:_color >> 16, _g24:_color >> 8 & 0xff, _b24:_color & 0xff};
}

//組合RGB色碼及回傳
private function combineRGB(_r24:uint,_g24:uint,_b24:uint):uint{
   return _r24 << 16 | _g24 << 8 | _b24;
}






沒有留言: