[ActionScript 3.0] 自制简单拾色器
colorBoard为库中绑定的影片剪辑,colorBoard中包含影片剪辑currColor,文本colorText,影片剪辑close;
colorDot为库中绑定的影片剪辑,colorDot中包含影片剪辑dot,border;
package
{
import fl.motion.Color;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.geom.ColorTransform; /**
* ...
* @author Frost.Yen
*/
public class ColorPicker extends Sprite
{
private var _colorBoard:MovieClip;
private var _colorArr:Array = [0,0x333333,0x666666,0x999999,0xCCCCCC,0xFFFFFF,0xFF0000,0x00FF00,0x0000FF,0xFFFF00,0x00FFFF,0xFF00FF];
private var _colorW:Number = 10;
private var _prevBorder:MovieClip;
public function ColorPicker()
{
creatColorBoard();
} private function creatColorBoard():void
{
_colorBoard = new colorBoard ;
_colorBoard.x = 150;
_colorBoard.y = 150;
this.addChild(_colorBoard);
for (var i:int = 0; i < 12; i++)
{
var dot1:colorDot = new colorDot ;
dot1.x = 0;
dot1.y = i * _colorW;
_colorBoard.addChild(dot1);
setColorTransform(dot1.dot,_colorArr[i]);
//trace(_colorArr[i]);
//trace(_colorArr[i].toString(16));
dot1.name = String(_colorArr[i]);
//trace(uint(dot1.name).toString(16), "---");
dot1.addEventListener(MouseEvent.CLICK,onColorClick);
}
for (var R = 0; R < 6; R++)
{
for (var G = 0; G < 6; G++)
{
for (var B = 0; B < 6; B++)
{
var dot2:colorDot = new colorDot ;
dot2.x = B * _colorW + R % 3 * 6 * _colorW + _colorW;
dot2.y = G * _colorW + Math.floor((R / 3)) * 6 * _colorW;
_colorBoard.addChild(dot2);
var color:uint = setRGB((0x33 * R),0x33 * B,0x33 * G);
setColorTransform(dot2.dot,color);
dot2.name = String(color);
dot2.addEventListener(MouseEvent.CLICK,onColorClick);
}
}
}
_prevBorder = _colorBoard.getChildByName("0") as MovieClip.border as MovieClip;
_colorBoard.colorText.text = "#" + "000000";
setColorTransform(_prevBorder,0xffffff);
setColorTransform(_colorBoard.currColor,0x000000);
_colorBoard.getChildByName("0").parent as MovieClip.setChildIndex(_colorBoard.getChildByName("0") as MovieClip,_colorBoard.getChildByName("0") as MovieClip.parent.numChildren - 1);
_colorBoard.close.addEventListener(MouseEvent.CLICK,onCloseColorPicker);
} private function onColorClick(e:MouseEvent):void
{ var color:String = uint(e.currentTarget.name).toString(16);
color = color.length == 2 ? "0000" + color:color.length == 4 ? ("00" + color):color.length == 1 ? ("00000" + color):color;
//trace(color,"+++");
_colorBoard.colorText.text = "#" + color;
setColorTransform(_colorBoard.currColor,uint(("0x" + color)));
setColorTransform(e.currentTarget.border,0xffffff);
setColorTransform(_prevBorder,0x000000);
_prevBorder = e.currentTarget.border as MovieClip;
e.currentTarget.parent as MovieClip.setChildIndex(e.currentTarget as MovieClip,e.currentTarget.parent.numChildren - 1);
}
/**
* 改变影片剪辑颜色值
* @param mc
* @param color
*/
private function setColorTransform(mc:MovieClip,color:uint):void
{
var ct:ColorTransform = new ColorTransform ;
ct.color = color;
mc.transform.colorTransform = ct;
}
/**
* 设置RGB
* @param r
* @param g
* @param b
* @return
*/
private function setRGB(r:Number,g:Number,b:Number):Number
{
return r << 16 | g << 8 | b;
} private function onCloseColorPicker(e:MouseEvent):void
{
trace("close");
}
} }
[ActionScript 3.0] 自制简单拾色器的更多相关文章
- 使用 HTML5 canvas制作拾色器
自制的拾色器漂亮吧,哈哈 废话不多说直接上代码,希望可以帮到需要的朋友 <html><head> <style> .canvas_color{p ...
- 原生js编写的安全色拾色器
<html > <head> <meta http-equiv="Content-Type" content="text/html; cha ...
- HTML-参考手册: HTML 拾色器
ylbtech-HTML-参考手册: HTML 拾色器 1.返回顶部 1. HTML 拾色器 选取颜色: 或输入颜色值: OK 或使用 HTML5: 选择的颜色: 黑色文本 阴影 白色文本 阴 ...
- 拾色器,可以取出电脑屏幕的任何颜色,ui以及程序员前端等常用软件,文件很小,300K
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985,转载请说明出处. 今天给大家介绍一个小软件,挺实用的,叫做拾色器. 用途:取出电脑屏幕的任意颜色,当你 ...
- 使用css3和javascript开发web拾色器实例
本实例中的web拾色器功能使用css3实现页面效果,即在页面上显示的元素用css3样式来实现的.再使用js生成拾色器颜色数据,并控制各元素的鼠标事件.当事件作为反应时,获取到对应的数据并显示颜色值. ...
- PS拾色器(前景色背景色)快捷键
快捷键 I 是拾色器 X 是前后色切换
- Android Studio中如何设置颜色拾色器工具
Android Studio如何设置颜色拾色器工具Color Picker? 你可能下载过一些获取颜色值的一些小工具, 这种方式获取颜色,需要先切换窗口转跳到桌面,然后打开拾色器小工具程序,然后去拾取 ...
- Linux下的高级拾色器—Pick
导读 虽然大多数设计师都在使用 Mac,但也有一少部分在使用 Windows 甚至是 Linux 系统.在 Mac 和 Windows 中都有非常丰富的拾色器工具或插件可用,反而在开源界中这类颜色选择 ...
- 优动漫PAINT基础系列之拾色器教学
在优动漫PAINT中有类似Photoshop的拾色器功能么?在优动漫PAINT中,可以直接输入颜色数值选择颜色么?当然是可以的啦!怎么呼出拾色器界面~ 看这边... 前段时间小编有收到一些小伙伴的疑问 ...
随机推荐
- Writing Surface Shaders
[Writing Surface Shaders] Writing shaders that interact with lighting is complex. There are differen ...
- 启动react项目报如下错误
输入:npm run build:dll
- Codeforces 76D 位运算
题意:给你两个数x 和 y, x = a + b, y = a XOR b,问有没有合法的a和b满足这个等式? 思路:有恒等式: a + b = ((a & b) << 1) + ...
- Linux Bash脚本编程语言中的美学与哲学
我承认,我再一次地当了标题党.但是不可否认,这一定是一篇精华随笔.在这一篇中,我将探讨Bash脚本语言中的美学与哲学. 这不是一篇Bash脚本编程的教程,但是却能让人更加深入地了解Bash脚本编程,更 ...
- [SoapUI] 通过Groovy写文本文件
如果文件已经存在,先删除,然后向文件中追加失败信息 if(maxRecordFail>0){ def testResultFile = new File(projectDir+"\\T ...
- 关于神经网络中的padding
参考:https://www.cnblogs.com/willnote/p/6746668.html
- 后台注册js代码的方法
Page.ClientScript.RegisterClientScriptBlock(JSUtil.CurrentPage.GetType(), Util.NewGuid(), @"< ...
- 白盒测试实践项目(day1)
由于近期各种考试逼近,我们小组白盒测试实践项目进度有些慢,在任务决定后的两天里,我们小组各个成员的进度完成不一. 胡俊辉熟悉了怎么使用Junit对部分代码的测试,初步掌握了Junit的简单使用. 汪鸿 ...
- Eclipse Failed to get the required ADT version number from SDK
之前本人的AndroidStudio和Eclipse使用的是同一个SDK,然后使用AndroidStudio的 SDK Manager对SDK进行了update,再打开Eclipse就报了“Eclip ...
- 如何快速增加pdf书签,解除pdf限制
一.需要的工具 福昕PDF阅读器 Foxit PDF Editor 2.2.1 build 1119 汉化版 下载地址:http://www.onlinedown.net/soft/51002.htm ...