你的位置:3P代码 >> 网站制作 >> Flash教程 >> 详细内容 在线投稿

关于color对象的使用方法

热度0票  浏览761次 时间:2010年12月29日 11:58

  

最近在做一些实例时经常用到关于color对象的几种方法,开始也是一头雾水,也在闪吧发过求助帖子(在此对支书给予的帮助表示感谢),经过多次试验和练习,现在基本了解了这几种方法的使用,今天把它整理出来,给初学者一个参考,高手们也给提提意见,看看我有没有说错的地方或者遗漏的,还请指正或补充。

color对象只有4种方法,分别是:

1、getRGB 返回最后一次调用setRGB方法时设置的RGB值;

2、getTransform 返回最后一次调用setTransform方法时设置的色彩变换信息;

3、setRGB 用16进制形式设置RGB色彩;

4、setTransform 设置色彩变换信息。

在使用color对象之前,必须先初始化一个实例,例如:

mycolor=new Color(target);

mycolor是这个实例的名字,你也可以用其他的名字(如:a,b,c……),但为了增强代码的可读性,最好用color这个词再加上一些你认为便于理解的字母;

new color 是它的语法,是规定的,指一个新的cololr对象;

target 指创建color对象的mc实例,是一个mc的实例名。

下面分别说明如何使用这几种方法,为了便于理解,我先从后两个方法说起。

setRGB 用16进制形式设置RGB色彩;

语法:mycolor.setRGB(0xRRGGBB);

说明:0xRRGGBB是RGB颜色的16进制形式,RR,GG,BB分别代表红绿蓝色,它们都是16进制形式的数字,取值范围是00至ff,换算成十进制就是0至255。

下面这个例子为影片剪辑aaa设置颜色

新建一个mc,画一个矩形,随便用什么颜色填充,将mc拖到舞台,实例名命名为aaa,如图1

screen.width-333)this.width=screen.width-333" border=0>

然后在主时间轴第一帧写下面的代码

mycolor=new color(aaa);

mycolor.setRGB(0xffff00);

测试,可以看到矩形变为黄色,如图2

screen.width-333)this.width=screen.width-333" border=0>

这段代码中的ffff00就是黄色的RGB值,0x代表是16进制的数字形式,注意,0后面是字母x,而不是乘号。那么我们如何来确定某种颜色的RGB值是多少呢?用调色板。我们在调色板中选定某种颜色后,右面的R,G,B旁边的数值也会相应变化,这个值就是RGB的值,只不过它是十进制的,我们把它换算成16进制就可以了。如图3

screen.width-333)this.width=screen.width-333" border=0>

我们还可以利用随机函数设置随机颜色,方法如下

mycolor=new color(aaa);

mycolor.setRGB(random(0xffffff));

setTransform 设置色彩变换信息

语法:mycolor.setTransform(colorTransformobject);

说明:colorTransformobject是一个普通的object对象,关于object对象这里不做太多解释,因为我也不是很明白,如果说错了给大家带来误导可不好,这里你只要明白这个object对象中有8个参数,ra,rb,ga,gb,ba,bb,aa,ab,其中ra,ga,ba,aa代表红绿兰和透明度的百分比取值范围在-100至100,rb,gb,bb,ab代表红绿兰和透明度的偏移量,取值范围在-255至255。(注意这里要用十进制的数)下下面举个例子说明如何设置色彩变换信息

导入一张图片(其实用矢量图也可以,但为了效果明显我用的图片),转换为mc,拖入舞台,实例名bbb,如图4

screen.width-333)this.width=screen.width-333" border=0>

注意此时没有给bbb设置颜色,现在我们在主时间轴第一帧加如下代码

mycolor = new color(bbb);//建立一个新的color对象

mycolortransform = new Object;//建立一个新的object对象

mycolortransform ={ra:''30'',rb:''179'',ga:''30'',gb:''179'',ba:''30'',bb:''179'',aa:''100'',ab:''0''}

//为这个object对象添加颜色变换信息,也就是那8个参数

mycolor.settransform(mycolortransform);//根据那8个参数改变颜色信息

测试,可以看到图片被遮上一层白色,如图5

screen.width-333)this.width=screen.width-333" border=0>

这种效果就和我们在属性面板里为bbb设置色调为白色,70%一样,如图6

screen.width-333)this.width=screen.width-333" border=0>

那么我们又是如何得到那8个参数的值呢?和上面的方法一样,我们可以先在属性面板里设置色调、亮度或透明度,使图片达到自己想要的效果,如上例,我们先在属性面板里设置bbb的色调为白色70%,如上图,然后选“高级”,再点旁边的“设置”,如图7

screen.width-333)this.width=screen.width-333" border=0>

点击后弹出“高级效果”,这里一共有8个数值,这8个数值就分别代表上面说的那8个参数,如图8

screen.width-333)this.width=screen.width-333" border=0>

看看是不是和上面那8个数一样。把这8个数记下来添加到object对象就可以了。

以上这两个方法明白了,前面两个就好理解了

1、getRGB

返回最后一次调用setRGB方法时设置的RGB值;

在第一个例子中,再加两段代码,如下

mycolor=new color(aaa);

mycolor.setRGB(0xffff00);

a=(mycolor.getRGB().toString(16));//将最后一次调用setRGB方法时设置的RGB值付给变量a, toString(16)表示是16进制的数字形式

trace(a);//将a的值显示到output窗口

测试会看到output窗口显示“ffff00”

2、getTransform 返回最后一次调用setTransform方法时设置的色彩变换信息;

在第二个例子中,再加两段代码,如下

mycolor = new color(bbb);//建立一个新的color对象

mycolortransform = new Object;//建立一个新的object对象

mycolortransform ={ra:''30'',rb:''179'',ga:''30'',gb:''179'',ba:''30'',bb:''179'',aa:''100'',ab:''0''}

//为这个object对象添加颜色变换信息,也就是那8个参数

mycolor.settransform(mycolortransform);//根据那8个参数改变颜色信息

b=(mycolor.getTransform())//将最后一次调用setTransform方法时设置的色彩变换信息付给b

mycolor2 = new color(aaa);//新建一个color对象,指向aaa,就是例1中的那个矩形块

mycolor2.settransform(b);//改变aaa的颜色

测试可以看到矩形块也被照上一层白色,和图片的效果一样。

TAG: Color color 对象
上一篇 下一篇