2016-10-13 00:16:48 点击量:21 标签: 收藏本文
这是仿FLASH里的颜色样本里的取色矩阵做的.
- /**
- 调色板样本生成程序
- 东写西读
- 2007.09.09
- */
- //生成颜色
- function makeColor(rr:uint,gg:uint,bb:uint):uint {
- return rr * 16 * 16 * 16 * 16 + gg * 16 * 16 + bb;
- }
- //生成小色块
- function makeRect(sp:Sprite,color:uint):Sprite {
- sp.graphics.lineStyle(0.1,0xFFFFFF);
- sp.graphics.beginFill(color);
- sp.graphics.drawRect(0,0,rectW,rectH);
- return sp;
- }
- //
- var R:uint=255;
- var G:uint=255;
- var B:uint=255;
- var step:uint=255/5;
- //色板长宽
- var rectW:uint=15;
- var rectH:uint=15;
- //生成调色器绘制主体.
- var colorBD:Sprite=new Sprite();
- this.addChild(colorBD);
- colorBD.x=30;
- colorBD.y=30;
- colorBD.name="colorBD";
- //*******************************************
- var aX:uint=0;
- var aY:uint=0;
- //循环生成色块
- for (var r:uint=0; r<=R; r+=step) {
- //生成六大区块.
- var sp6:Sprite=new Sprite();
- colorBD.addChild(sp6);
- //***************************************
- var rX:uint=0;
- var rY:uint=0;
- for (var g:uint=0; g<=G; g+=step) {
- for (var b:uint=0; b<=B; b+=step) {
- //生成小色块矩阵
- var rectSP:Sprite=new Sprite();
- sp6.addChild(rectSP);
- makeRect(rectSP,makeColor(r,g,b));
- //设置座标.
- rY+=rectH;
- rectSP.x=rX;
- rectSP.y=rY;
- }
- rX+=rectW;
- rY=0;
- }
- sp6.x=aX%(sp6.width*3);
- sp6.y=aY;
- aX+=sp6.width;
- aY=Math.floor(aX/(sp6.height*3))*sp6.height;
- //****************************************
- }
- 转载:http://space.flash8.net/space/?690727/viewspace-365782.html
- 生成混色器的方法:
- 核心代码:(不可直接运行的哦)
- for (var j=0; j<200; j+=3) {
- /*1530=255*6
- 依据R=255; G=0B=0
- R=255;G=255;B=0
- R=0;G=255;B=255;
- R=0;G=0;B=255;
- R=255;G=0;B=255;
- R=255;G=0;B=0
- 来划分六个大色系
- */
- for (var i=0; i<1530; i+=5) {
- if (i<255) {
- g+=5;
- } else if (i<510) {
- r-=5;
- } else if (i<765) {
- b+=5;
- } else if (i<1020) {
- g-=5;
- } else if (i<1275) {
- r+=5;
- } else {
- b-=5;
- }
- //i%6设置一个限制,也可以不设
- if (i%6==0) {
- rr=(128-r)/(100/j*2);
- gg=(128-g)/(100/j*2);
- bb=(128-b)/(100/j*2);
- //将r,b,g转化为可用的颜色值
- color=(r+rr)<<16|(g+gg)<<8|(b+bb);
- colorSprite.graphics.beginFill(color);
- //(i/6)的值恰好是i/15的整数2倍
- colorSprite.graphics.drawRect(i/15,j/2,2,2);
- colorSprite.graphics.endFill();
- }
- }
- }
- //根据鼠标位置提取亮度值
- private function shows(cx:Number,cy:Number) {
- var color:uint;
- var r2:Number=0;
- var g2:Number=0;
- var b2:Number=0;
- //cool值提取色彩
- var cool=b1.getPixel(cx,cy);//zi.x, zi.y
- //分别提取r,g,b值
- r=(cool>>16);
- g=(cool>>8)&0xff;
- b=cool&0xff;
- rr=(255-r)/100;
- gg=(255-g)/100;
- bb=(255-b)/100;
- rr2=r/100;
- gg2=g/100;
- bb2=b/100;
- for (var j=0; j<200; j+=1) {//200
- if (j<100) {
- color=(r+rr*(100-j))<<16|(g+gg*(100-j))<<8|(b+bb*(100-j));
- } else {
- color=(r-r2*(j-100))<<16|(g-g2*(j-100))<<8|(b-b2*(j-100));
- }
- cos.graphics.beginFill(color);
- cos.graphics.drawRect(m1.x+104,m1.y+j/2,35,1);
- }
- cos.graphics.endFill();
- }
我们是一家提供综合软件外包与弱电工程服务的技术公司。
业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。
公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室