前面兩篇講了顏色設(shè)置的基礎(chǔ)和隨心所欲的得到隨機的顏色,希望對大家多少有所幫助。說完隨機顏色,我們再講講顏色漸變,就像下面這個動畫:
頁面:點這兒參觀 源代碼(3K): colortest2.zip
這樣用顏色來表示y軸數(shù)值的大小,還是很直觀的,怎么做的呢?有了前面關(guān)于顏色討論的基礎(chǔ),我想大家應(yīng)該都差不多猜出做法來了,就是把rgb中的一個跟隨變量的增加而增加,就像這樣: for (n=1; n<=200; n++) { attachMovie("ball", "ball"+n, n); //復(fù)制200個點 this["ball"+n]._x = 2*n; y = Math.sin(n*Math.PI/100)*100+150; this["ball"+n]._y = y; //設(shè)置點的位置 mycolor = new Color(this["ball"+n]); mycolor.setRGB(255 << 16 | Math.floor(255*(y-50)/200)<<8 | 0); //根據(jù)y的位置定義點的顏色 } 關(guān)鍵就在紅色的Math.floor(255*(y-50)/200)<<8處,為什么這么寫我就不用解釋了吧?大家應(yīng)該都明白了吧?不明白再問。
看了上面的顏色漸變,大家肯定想做出更復(fù)雜的顏色漸變吧,看看下面:
頁面:點這兒參觀 源代碼(3K): colortest3.zip
是不是很有意思啊,下面是用flash自帶的調(diào)色板做的漸變,上面是用action計算出的漸變?雌饋砗孟窈苈闊鋵嵰埠苋菀椎,因為我們只要知道了色譜漸變的規(guī)律就行了,色譜漸變關(guān)鍵是找關(guān)鍵點。大家可以在連續(xù)色譜上自己距離不遠(yuǎn)取取顏色看看,很快就可以發(fā)現(xiàn)規(guī)律。寫出來就是: FF0000-g增加-FFFF00-r減少-00FF00-b增加-00FFFF-g減少-0000FF-r增加-FF00FF-b減少-FF0000 這是一個分段函數(shù),用action實現(xiàn)起來就是: a = Math.floor(n*6/nmax); b = Math.floor((n*1530/nmax)%255); //nmax=320;n從1增加到320;所以a最小值0,最大值6;b最小值0,最大值255 if (a == 0 || a == 6) { mycolor.setRGB(255 << 16 | b << 8 | 0); //FF0000--FFFF00段 } else if (a == 1) { mycolor.setRGB((255-b) << 16 | 255 << 8 | 0); //FFFF00--00FF00段 } else if (a == 2) { mycolor.setRGB(0 | 255 << 8 | b); //00FF00--00FFFF段 } else if (a == 3) { mycolor.setRGB(0 << 16 | (255-b) << 8 | 255); //00FFFF--0000FF段 } else if (a == 4) { mycolor.setRGB(b << 16 | 0 | 255); //0000FF--FF00FF段 } else if (a == 5) { mycolor.setRGB(255 << 16 | 0 | (255-b)); //FF00FF--FF0000段 }
呵呵,是不是很容易?怎么把這一段代碼用到實際編程中去,大家還是自己來吧,我就不多舉例子了。
不過需要說明的是,如果去掉FF00FF--FF0000這一段的代碼,這個漸變次序很符合彩虹赤橙黃綠青藍(lán)紫的變化規(guī)律的,但是和彩虹可是不一樣的。自然界的可見光波長一般從4000埃(長度單位,10的-10次方米)到7600埃,它們的顏色轉(zhuǎn)變成RGB顏色和肉眼的光感特性有關(guān),并不是線性變化的。不過如果拿這個漸變示意彩虹的話,我想是可以的,我在楊氏雙縫干涉實驗這個課件里就是這么做的。
顏色漸變寫完了,下次寫寫顏色(色光)疊加,其實在我原來的計劃里,我沒有打算加入色光疊加的內(nèi)容,因為我可以說以前從來沒有認(rèn)真的想過,但是在那天和cnmusa網(wǎng)友經(jīng)過討論之后,我感覺我找到了計算色光疊加的方法,而且經(jīng)過簡單的驗證,我認(rèn)為這種算法是正確的。所以我把色光疊加作為RGB顏色action自定義教程的第四部分內(nèi)容,希望大家喜歡。
最后,還是那句話,希望大家拭目以待!
出處:藍(lán)色理想
責(zé)任編輯:藍(lán)色
上一頁 RGB顏色action自定義教程 — 隨機顏色篇 下一頁 RGB顏色action自定義教程 — 色光疊加篇
◎進入論壇Flash專欄版塊參加討論
|