图片取色器:
/** * * *---------------------* * | *** 图片取色器 *** | * *---------------------* * * 编辑修改收录:fengzi(疯子、wu341、wgq341) * * 不会写代码,我是代码搬运工。 * * 联系方式:QQ(493712833)。 * * 随 笔: https://www.cnblogs.com/fengziwu/ * * 版权协议:请自觉遵守LGPL协议,欢迎修改、复制、转载、传播给更多需要的人。 * 免责声明:任何因使用此软件导致的纠纷与软件/程序开发者无关。 * 日 期: 2019.05.08 * * ---------------------- 实例 --------------------------- * *图片取色器 import fengzi.colors.ExtractColor; var s:ColorPicker=new ExtractColor(图片); addChild(s); s.addEventListener("color.move",colorMoveHandler); function colorMoveHandler(event:Event):void { trace(event.target.color) } */ package fengzi.colors { import flash.display.Sprite; import flash.display.MovieClip; import flash.events.Event; import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.PixelSnapping; import flash.events.MouseEvent; public class ExtractColor extends Sprite { static public const COLOR_MOVE:String = "color.move"; private var bitmap:Bitmap; private var bitmapData:BitmapData; private var imgMc:*; private var _color:uint = 0; private var colorStr:String /*** * ExtractColor 图片取色器 * @param imgMc 图片对象 ***/ public function ExtractColor(imgMc: * ) { getColor(imgMc); } private function getColor(mc:*) { bitmapData = new BitmapData(mc.width,mc.height,false,0xFFFFFF); bitmapData.draw(mc); bitmap = addChild(new Bitmap(bitmapData,PixelSnapping.AUTO,false)) as Bitmap; this.addEventListener(MouseEvent.MOUSE_MOVE,moveHandler); } private function moveHandler(event:MouseEvent):void { _color = bitmapData.getPixel(mouseX,mouseY); var temp_color:String = _color.toString(16); var temp_length:int = temp_color.length; if (temp_length < 6) { switch (temp_length) { case 4 : colorStr = "0x00" + _color.toString(16); break; case 5 : colorStr = "0x0" + _color.toString(16); break; default : trace("no case tested true"); } } else { colorStr = (("0x" + _color.toString(16)) + "00000").slice(0,8); } trace(colorStr); dispatchEvent(new Event(COLOR_MOVE)); } /*** * color 返回一个16进制颜色值(0xff00ff) ***/ public function get color():String { return colorStr; } } }