I have a color picker, and I need to be able to change the movieclips brightness. I don’t know how, but here is an idea of what I’m going for - using the alpha property instead:
function drawGradientBox(size:uint, col:Array, alph:Array, rat:Array, matRot:Number) {
var sp:Sprite = new Sprite();
var mat:Matrix = new Matrix();
var fill:String = GradientType.LINEAR;
mat.createGradientBox(size, size, matRot, 0, 0);
sp.graphics.beginGradientFill(fill, col, alph, rat, mat);
sp.graphics.drawRect(0, 0, size, size);
return sp;
}
function deg2rad(deg:Number):Number {
return deg * (Math.PI/180);
}
function onHover(evt:MouseEvent):void {
if (spectrum.hitTestPoint(mouseX, mouseY, true)) {
col = bmd.getPixel(spectrum.mouseX, spectrum.mouseY);
//code.text = prependZeros(col);
}
}
function onAlphaHover(evt:MouseEvent){
colorPicker.alpha = evt.localY/100;
}
function prependZeros(hex:uint):String {
var hexString = hex.toString(16).toUpperCase();
var cnt:int = 6 - hexString.length;
var zeros:String = "";
for (var i:int = 0; i < cnt; i++) {
zeros += "0";
}
return "#" + zeros + hexString;
}
var underlay:Sprite = new Sprite();
underlay.graphics.beginFill(0);
underlay.graphics.drawRect(0, 0, 100, 100);
underlay.x = underlay.y = 10;
//addChild(underlay);
var colorPicker:Sprite = new Sprite();
colorPicker.cacheAsBitmap = true;
var colors:Array = [0xFF0000, 0xFFFF00, 0x00FF00, 0x00FFFF, 0x0000FF, 0xFF00FF, 0xFF0000];
var alphas:Array = [1, 1, 1, 1, 1, 1, 1];
var ratios:Array = [0, 42, 84, 126, 168, 210, 255];
var spectrum:Sprite = drawGradientBox(100, colors, alphas, ratios, 0);
colorPicker.addChild(spectrum);
colors = [0x000000, 0x000000];
alphas = [1, 0];
ratios = [0, 255];
var overlay:Sprite = drawGradientBox(100, colors, alphas, ratios, deg2rad(-90));
colorPicker.addChild(overlay);
colorPicker.x = 10;
colorPicker.y = 10;
this.addChild(colorPicker);
var col:uint;
var bmd:BitmapData = new BitmapData(colorPicker.width, colorPicker.
height, false, 0xFFFFFFFF);
bmd.draw(colorPicker);
colorPicker.addEventListener(MouseEvent.MOUSE_MOVE, onHover, false, 0, true);
var darknessPicker:Sprite = new Sprite();
darknessPicker.cacheAsBitmap = true;
colors = [0x000000, 0xFFFFFF];
alphas = [1, 1];
ratios = [0, 255];
var spectrum2:Sprite = drawGradientBox(100, colors, alphas, ratios, deg2rad(-90));
darknessPicker.addChild(spectrum2);
darknessPicker.width = 10;
darknessPicker.y = 10;
darknessPicker.x = 120;
this.addChild(darknessPicker);
darknessPicker.addEventListener(MouseEvent.MOUSE_MOVE, onAlphaHover, false, 0, true);
Any idea how I can change brightness? I want to take this little color picker and hook it in to some javascript - I think it will run a lot smoother than the pure JS ones out there.