forked from: カラーピッカーのアレ
// forked from taiga's カラーピッカーのアレ
package {
import flash.events.MouseEvent;
import flash.display.Sprite;
import flash.text.TextField;
[SWF (backgroundColor='0')]
public class ColorPicker extends Sprite {
private var textField:TextField;
private var colorList:Array = [[0, 3355443, 6710886, 10066329, 13421772, 16777215, 16711680, 65280, 255, 16776960, 65535, 16711935], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 51, 102, 153, 204, 255, 10027008, 10027059, 10027110, 10027161, 10027212, 10027263], [13056, 13107, 13158, 13209, 13260, 13311, 10040064, 10040115, 10040166, 10040217, 10040268, 10040319], [26112, 26163, 26214, 26265, 26316, 26367, 10053120, 10053171, 10053222, 10053273, 10053324, 10053375], [39168, 39219, 39270, 39321, 39372, 39423, 10066176, 10066227, 10066278, 10066329, 10066380, 10066431], [52224, 52275, 52326, 52377, 52428, 52479, 10079232, 10079283, 10079334, 10079385, 10079436, 10079487], [65280, 65331, 65382, 65433, 65484, 65535, 10092288, 10092339, 10092390, 10092441, 10092492, 10092543], [3342336, 3342387, 3342438, 3342489, 3342540, 3342591, 13369344, 13369395, 13369446, 13369497, 13369548, 13369599], [3355392, 3355443, 3355494, 3355545, 3355596, 3355647, 13382400, 13382451, 13382502, 13382553, 13382604, 13382655], [3368448, 3368499, 3368550, 3368601, 3368652, 3368703, 13395456, 13395507, 13395558, 13395609, 13395660, 13395711], [3381504, 3381555, 3381606, 3381657, 3381708, 3381759, 13408512, 13408563, 13408614, 13408665, 13408716, 13408767], [3394560, 3394611, 3394662, 3394713, 3394764, 3394815, 13421568, 13421619, 13421670, 13421721, 13421772, 13421823], [3407616, 3407667, 3407718, 3407769, 3407820, 3407871, 13434624, 13434675, 13434726, 13434777, 13434828, 13434879], [6684672, 6684723, 6684774, 6684825, 6684876, 6684927, 16711680, 16711731, 16711782, 16711833, 16711884, 16711935], [6697728, 6697779, 6697830, 6697881, 6697932, 6697983, 16724736, 16724787, 16724838, 16724889, 16724940, 16724991], [6710784, 6710835, 6710886, 6710937, 6710988, 6711039, 16737792, 16737843, 16737894, 16737945, 16737996, 16738047], [6723840, 6723891, 6723942, 6723993, 6724044, 6724095, 16750848, 16750899, 16750950, 16751001, 16751052, 16751103], [6736896, 6736947, 6736998, 6737049, 6737100, 6737151, 16763904, 16763955, 16764006, 16764057, 16764108, 16764159], [6749952, 6750003, 6750054, 6750105, 6750156, 6750207, 16776960, 16777011, 16777062, 16777113, 16777164, 16777215], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]];
public function ColorPicker() {
super();
var s:ColorSquare;
var i:int;
var j:int;
for(i = 0; i < 21; i++) {
for(j = 0; j < 12; j++) {
s = new ColorSquare();
s.x = (i * 11) + 3;
s.y = (j * 11) + 26;
s.color = colorList[i][j];
s.addEventListener(MouseEvent.ROLL_OVER, colorSquareRollOverHandler);
addChild(s);
}
}
textField = new TextField();
textField.y = 0;
textField.width = 200;
textField.height = 20;
textField.textColor = 0xffffff;
textField.text = "#";
addChild(textField);
scaleX = scaleY = 1.2;
}
private function colorSquareRollOverHandler(event:MouseEvent):void {
var target:ColorSquare = event.currentTarget as ColorSquare;
textField.text = target.colorString;
}
}
}
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.geom.ColorTransform;
import flash.display.Shape;
import flash.filters.BevelFilter;
class ColorSquare extends Sprite {
private var _color :uint;
private var _colorString :String;
private var _colorShape :Shape;
private var _backgroundShape :Shape;
public function get colorString():String {
return getFigure(_colorString);
}
public function get color():uint {
return _color;
}
public function set color(v:uint):void {
_color = v;
_colorString = v.toString(16);
var r:uint = (v >> 16) & 0xff;
var g:uint = (v >> 8) & 0xff;
var b:uint = v & 0xff;
_colorShape.transform.colorTransform = new ColorTransform(0, 0, 0, 1, r, g, b);
}
public function ColorSquare():void {
super();
_backgroundShape = new Shape();
_backgroundShape.graphics.beginFill(0xffffff);
_backgroundShape.graphics.drawRect(0, 0, 13, 13);
_backgroundShape.graphics.endFill();
_backgroundShape.visible = false;
_colorShape = new Shape();
_colorShape.graphics.beginFill(0xffffff);
_colorShape.graphics.drawRect(1, 1, 11, 11);
_colorShape.graphics.endFill();
addChild(_backgroundShape);
addChild(_colorShape);
filters = [new BevelFilter(1.0)];
buttonMode = true;
addEventListener(MouseEvent.ROLL_OVER, function(e:MouseEvent):void {_backgroundShape.visible = true});
addEventListener(MouseEvent.ROLL_OUT, function(e:MouseEvent):void {_backgroundShape.visible = false});
}
private function getFigure(s:String):String {
var i :int;
var l :int = s.length;
var sp :String = "#";
if (6 > l) {
for (i = 0; i < 6 - l; i++) {
sp += "0";
}
sp += s;
return sp;
}
else {
return String("#" + s);
}
}
}