2つの色を混ぜてみる
Posted by admin | Filed under Actionscript3.0
2つの色を混ぜて中間色を求めるスクリプトが
必要になったのでググったらありました。
参照サイト: nondelion.com 2つの色の中間色を求める方法
~方法~
1, 2色とも16進数からRGB値を割り出す(ビットマスクを利用します)
2, RGB値を足す
3, また16進数に戻す
こんな感じ。
以下がサンプルソースになります
package
{
import flash.display.Sprite;public class Main extends Sprite
{
//黒色
private var color1:Number = 0×000000;
//赤色
private var color2:Number = 0xff0000;public function Main():void
{
init();
}private function init():void
{
var sp:Sprite = new Sprite();//赤と黒の中間色
var mixColor:Number = setMiddleColor(color1, color2);sp.graphics.beginFill(mixColor);
sp.graphics.drawRect(0, 0, 100, 100);
sp.graphics.endFill();
addChild(sp);}
private function hex2rgb(n:Number):Array
{
var rgbArray:Array = new Array(3);
rgbArray[0] = ( n >> 16 ) & 0xff;
rgbArray[1] = ( n >> 8 ) & 0xff;
rgbArray[2] = n & 0xff;
return rgbArray;
}private function setMiddleColor(firstColor:Number, secondColor:Number):uint
{
var firstRGB:Array = hex2rgb(firstColor);
var secondRGB:Array = hex2rgb(secondColor);
var red:Number = int((firstRGB[0] + secondRGB[0]) * 0.5);
var green:Number = int((firstRGB[1] + secondRGB[1]) * 0.5);
var blue:Number = int((firstRGB[2] + secondRGB[2]) * 0.5);
var hex:uint = red << 16 | green << 8 | blue;
return hex;
}
}}
Tags: Actionscript3.0