当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > flash 颜色 action 自定义教程(1)

Flash动画制作
Flash教程:纯AS编写蝌蚪摆尾动画效果
Flash鼠绘新手入门第一课:认识鼠绘
Flash教程:打造月夜下飞翔的蝙蝠动画
Flash教程:制作可爱吹泡泡动画效果
Flash教程:打造仿奥运开幕式卷轴动画效果
Flash基础教程:制作鼠标跟随星星动画
Flash教程:制作淡雅动态网页菜单:蜻蜓飞飞动画效果
Flash鼠绘教程:绘制写真苹果的方法
Flash新手入门教程:AS2代码制作鼠标跟随龙舟效果
Flash鼠绘教程:绘制清新可口的芒果
Flash鼠绘教程:教你绘制一盘逼真的水仙花
Flash鼠绘教程:临摹徐悲鸿的骏马图
Flash鼠绘教程:绘制香甜可口的香瓜
Flash新手入门教程:鼠标跟随漂亮光圈特效
Flash新手入门教程:打造鱼缸中游动的鱼动画效果
Flash新手入门教程:AS代码制作五彩缤纷旋转效果
Flash鼠绘教程:打造唯美渔舟唱晚效果
Flash教程:打造鼠标跟随羽毛扇动画效果
Flash新手入门教程:AS代码实现鼠标跟随文字特效
Flash新手入门教程:AS代码实现神奇叠层效果

Flash动画制作 中的 flash 颜色 action 自定义教程(1)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-22   浏览: 40 ::
收藏到网摘: n/a

  既然是基础篇,就可以白说一堆大家都知道的废话,来浪费大家的时间,那简直是一定的。但是想想打字挺累得,还是算了吧,那些大家都差不多都知道的话我就不写了,反正在网上也很好找到。故以下作者删去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: