既然是基础篇,就可以白说一堆大家都知道的废话,来浪费大家的时间,那简直是一定的。但是想想打字挺累得,还是算了吧,那些大家都差不多都知道的话我就不写了,反正在网上也很好找到。故以下作者删去50000字……
废话少说,咱们现在差不多都是用rgb数值描述一个东西的颜色,rgb,red、green、blue顾名思义,红绿蓝嘛。这三个颜色可以说互相之间没有任何联系,但是计算机为了储存的方便,变成一个6位16进制整数储存,很多麻烦就是由此而产生。
我们先来看一个我做的物理教学课件,加深一下对rgb颜色的感性认识。
页面:点这儿参观
源码(6k):
colortest4.zip
默认是红绿蓝都打到最强255,这实际上就是白光。大家可以分别调节3个颜色的灯光强度,看一下白、红、绿、蓝、黑这5个代表性的小球颜色的变化。呵呵,怎么样,很过瘾吧。
下面我说一下这个课件是怎么做的,核心的action代码是颜色的计算和设置部分,下面的拉条做的很不好,半年前做的,现在懒得改了。
如果我们想一个物体的颜色为#996633,代码很简单:
mycolor = new color(themc);
mycolor.setrgb(0x996633);
如果仅仅知道各个颜色的大小,就是红色为153,绿102,蓝51:
mycolor = new color(themc);
r=153;
g=102;
b=51;
mycolor.setrgb(r<< 16 g << 8 b);
我觉得这个算法还是比较巧妙的,通过“左移”和“或”两个运算得到颜色的rgb值大小。
下面看看我课件里的5个小球,白球是反射任何光的。所以颜色就是:
onclipevent (load) {
mycolor = new color(this);
}
onclipevent (enterframe) {
mycolor.setrgb(_root.r << 16 _root.g << 8 _root.b);
}
红球之反射红光,只需把颜色设置改为mycolor.setrgb(_root.r << 16 0);
同理,绿球:mycolor.setrgb(_root.g << 8 0);
蓝球:mycolor.setrgb(_root.b);
黑球什么颜色的光都不反射,就是:mycolor.setrgb(0x000000);
简单吧!
你如果说,一个对红光反射75%,绿光50%,蓝光25%的物体,什么颜色,
mycolor.setrgb(math.floor(_root.r*0.75) << 16 math.floor(_root.g*0.5) << 8 (_root.b*0.25));x
不要忘记math.floor()啊,我们要的可是整数,不然出错的话,flash自动设为黑色。
是不是很简单啊,大家可能开始看到我做的flash的时候,很惊讶,看到源码,又太简单。但是我为了想到这个制作思路,可是画了很多很多的时间啊。教程写的不好,希望对大家能有一点点用处。
今天的基础教程主要是介绍一下rgb的基本知识,和flash中rgb设置的基本方法。以后我会再写一些扩展方面的内容,不如怎么设置比较漂亮随机颜色,怎么计算颜色渐变,怎么模拟彩虹……请大家拭目以待!:cool:
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器