Color picker simple en Flash 8
Bueno siguiendo el tema del color picker aquí les tengo uno mas pequeño y simple. En este ejemplo se pueden dibujar cuadrados del color elegido. Para verlo necesitan el player 8 :D.
El código esta en una .as file externa y seria algo así aunque un poco simplificado
import flash.display.BitmapData;
import com.asfusion.events.LazyDispatcher;
class ColorPickerSmall extends LazyDispatcher
{
private var btmp:BitmapData;
private var clip:MovieClip;
private var field:TextField;
private var bitmapLibrary:String = "palette";
function ColorPickerSmall(handelClip, level)
{
btmp = BitmapData.loadBitmap(bitmapLibrary);
clip = handelClip.createEmptyMovieClip("colorPicker",level);
init();
}
function init()
{
var owner = this;
var palete = clip.createEmptyMovieClip("palette",0);
palete.attachBitmap(btmp, 0, "auto", true);
palete.useHandCursor = false;
palete.onPress = function()
{
this.onMouseMove = function()
{
owner.onMouseMove(this._xmouse, this._ymouse);
}
}
palete.onRelease = palete.onReleaseOutside = function()
{
delete this.onMouseMove;
}
}
function onMouseMove(x,y)
{
colorChanged(btmp.getPixel(x, y))
}
private function colorChanged(color:Number):Void
{
dispatchEvent({type:"change", target:this, value:color});
}
}
Como verán estoy heredando de el event dispatcher para poder hacer mandar el evento change. Asi luego puedo tener un listener que escuche los cambios de color que se producen en el componente
var myColorPicker:ColorPickerSmall = new ColorPickerSmall(clip, 0);
function colorChanged(event):Void
{
color = event.value;
}
myColorPicker.addEventListener("change", colorChanged);
Ver ejemplo online (se necesita flash player 8)
Note for English speakers:I posted this in my English feed by mistake and mxna indexed it. Sorry for the trouble :D
