论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash教程
Tag:flash cs,flash 8,鼠绘,as,手绘,工具,文字,loading,入门,初学,mc,影片剪辑,声音,mtv,游戏,引导,遮罩,菜单,补间,广告条,时钟,视频教程

关于color对象的使用方法

文章类别:Flash | 发表日期:2008-9-21 15:07:54

  

最近在做一些实例时经常用到关于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





按此在新窗口浏览图片





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







mycolor=new color(aaa);





mycolor.setRGB(0xffff00);





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





按此在新窗口浏览图片





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





按此在新窗口浏览图片






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







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





按此在新窗口浏览图片





注重此时没有给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





按此在新窗口浏览图片





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



按此在新窗口浏览图片





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



按此在新窗口浏览图片





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



按此在新窗口浏览图片





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





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





1getRGB
返回最后一次调用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”





2getTransform 返回最后一次调用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的颜色

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

视频教程列表
文章教程搜索
 
Flash推荐教程
Flash热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058