Flash小品之顏色解析

來源:互聯網
上載者:User

    Flash小品之顏色解析    
  
  不知不覺已經用了一陣子的AS3,漸漸的對Flash有了不少好感,從一個遊戲愛好者的角度出發,我個人更喜歡將Flash看做是一套完備的2D遊戲製作引擎,平日興緻所致之時,自己便用它來隨便搞些東西,開發效率上確實提高了不少,很多開發上的細節Flash基本都已經提供實現,再加上其完善的編輯功能,我個人非常推崇將其用於原型遊戲的開發,有興趣的朋友不妨一試 :)   
   
  近來有機會處理到了Bitmap相關的內容,尤其是顏色部分的處理,感覺Flash提供的方法,譬如BitmapData.getPixel,BitmapChannel等等,都不是特別方便直觀,尤其是在需要處理各個顏色分量的情況下。鑒於Flash內建的顏色模式遵循‘a r g b’的相片順序,自己又暫時找不到特別好的處理方法(有識之士請告知一下 :)),於是自己又重造了一次車輪,在此為記,有興趣的朋友可以看一看:

/*!     \file ARGBColor.as    \brief this is simple color class for color converting*/package  {public class ARGBColor{// color value        private var a:uint;private var r:uint;private var g:uint;private var b:uint;// default constructorpublic function ARGBColor(value:uint=0){SetColor(value);}//! set color valuepublic function SetColor(value:uint):void{    splitColor(value);}//! set color valuepublic function SetColorARGB(a:uint, r:uint, g:uint, b:uint):void{SetA(a);SetR(r);SetG(g);SetB(b);}//! get color valuepublic function GetColor():uint{return mergeColor();}//! set alpha valuepublic function SetA(a_:uint):void{    a = a_;a = clamp(a, 0, 0xFF);}//! get alpha valuepublic function GetA():uint{return a;}//! set red valuepublic function SetR(r_:uint):void{r = r_;r = clamp(r, 0, 0xFF);}//! get red valuepublic function GetR():uint{return r;}//! set green valuepublic function SetG(g_:uint):void{g = g_;g = clamp(g, 0, 0xFF);}//! get green valuepublic function GetG():uint{return g;}//! set blue valuepublic function SetB(b_:uint):void{b = b_;b = clamp(b, 0, 0xFF);}//! get blue valuepublic function GetB():uint{return b;}// split colorprivate function splitColor(value:uint):void{    a = ((value >> 24) & 0xFF); // seems in Flash '>>' is signed shfitingr = ((value >> 16) & 0xFF);g = ((value >> 8) & 0xFF);b = (value & 0xFF);}// merge colorprivate function mergeColor():uint{return (a << 24) | (r << 16) | (g << 8) | b;}// clamp helper functionprivate function clamp(val:Number, min:Number, max:Number):Number{            return Math.max(min, Math.min(max, val));        }}}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.