[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中,可以直接输入颜色数值选择颜色么?当然是可以的啦!怎么呼出拾色器界面~ 看这边... 前段时间小编有收到一些小伙伴的疑问 ...
随机推荐
- git服务器搭建问题
CentOS6.5本地搭建. 对于图形化的系统,可以联网,然后CTRL+ALT+F2可以切换到命令行,CTRL+ALT+F1可以切换回桌面图形化. 可以用SSH和FTP来连接服务器和传文件. (1 ...
- JS中的函数声明和函数表达式的区别,即function(){}和var function(){},以及变量提升、作用域和作用域链
一.前言 Uncaught TypeError: ... is not a function function max(){}表示函数声明,可以放在代码的任何位置,也可以在任何地方成功调用: var ...
- Codeforces 712D DP
题意:有2个人玩游戏,他们都有个初始值a和b, 游戏进行t轮, 每次可以选择加上一个[-k, +k]之间的数字,问有多少种方案a的和严格大于b的和. 思路:如果不考虑多于这个条件,只是询问有多少种方案 ...
- 【原】Mac下统计任意文件夹中代码行数的工
[链接][原]Mac下统计任意文件夹中代码行数的工http://www.cnblogs.com/wengzilin/p/4580646.html
- Windows 安装 Maven 及 Eclipse 安装Maven插件
环境说明: window 8.1 64bit Eclipse Version: Luna Release (4.4.0) Maven 3.0.5 Windows Maven 安装: 1.确保安装了JD ...
- 49. Group Anagrams同义词合并
[抄题]: Given an array of strings, group anagrams together. Example: Input: ["eat", "te ...
- 开启Windows8里面的Hyper-V虚拟机功能
首先了解下什么是Hyper-V?也就是虚拟化技术,允许终端用户在同一台机器上运行多个操作系统,支持32位和64位系统,可以直接在Windows 8上创建自己的虚拟机.开启Hyper-V虚拟机需要更多的 ...
- 文件操作getc
getc函数的作用是从打开的文件中获取一个字符,并加文件指针自动加1,获取的字符在返回值中. 我写了一个读取一个文件255个字节的程序. int main() { FILE *p; fopen_s(& ...
- Header add Access-Control-Allow-Origin: *
允许所有域名跨域 Header add Access-Control-Allow-Origin: *
- BCompare 4重置试用天数
BCompare安装后有30天试用期,试用结束后,你可以卸载重装,以重新获得30天试用天数. BCompare的使用天数记录保存在注册表中,如果不想每次重装,也可删除对应的注册表值来重置激活天数. 命 ...