实验五 光的三原色原理课件的制作AS3

上机实验须知

实验五

实验名称:

光的三原色原理课件的制作

实验目的:

1)掌握Flash的显示对象层级结构

2)掌握自定义变量,自定义函数的方法。

3)掌握Flash对象之间的属性、函数的调用方法

4)掌握将各种元件的综合使用技巧

5)在以上知识和技能的基础上,完成一个光的三原色合成原理课件,有三个滑动控制器,移动控制器的滑块,可以

给显示区设置一个红色圆形区域,一个蓝色圆形区域和一

个绿色圆形区域,这三个区域两两叠加,叠加的部分采用

光的合成原理进行。效果如“光的三原色课件.swf”所示。实验原理:

建立剪辑的颜色对象,然后通过三个控制器的移动获得颜色三个通道的值,将这个颜色值赋值给剪辑的颜色对象就可以改变剪辑的颜色。

实验环境:

1)高档微机

2)WindowsXP中文版或者Windows2000

3)Flash CS3中文版

实验步骤和内容:

1)打开Flash程序,新建一个Flash文件,大小为400×225。2)先完成课件界面的基本布局。

3)建立三个没有填充的圆形线框,让这三个线框两两相交,给每个交叉的区域填上不同的颜色,并各自转化为元件,类型为电影剪辑。给每个剪辑设置一个实例名称。分别为r,g,b,rg,rb,gb,rgb。

4)设计颜色控制器的界面效果,颜色控制器是一个影片剪辑,其中包含一个滑块,一个文字显示框和必要的辅助背景。文字

框类型为动态文本,名称为txtColorValue。滑块是一个电影剪辑,实例名称为brick。

第一帧的脚本如下:

var colorValue:Number;

var rMulti=0,gMulti=0,bMulti=0;

brick.addEventListener(MouseEvent.MOUSE_DOWN,dragBrick); brick.addEventListener(MouseEvent.MOUSE_UP,dropBrick); this.addEventListener(Event.ENTER_FRAME,setColor);

function dragBrick(e:MouseEvent){

var rec:Rectangle=new Rectangle(0,-128,0,128);

brick.startDrag(false,rec);

}

function dropBrick(e:MouseEvent){

brick.stopDrag();

}

function setColor(e:Event){

colorValue=int(brick.y*(-255/200));

if(colorValue==256){

colorValue=255;

}

txtColorValue.text=String(colorValue);

var color:ColorTransform=new ColorTransform(0,0,0,1,colorValue*rMulti,colorValue*gMulti,colorV alue*bMulti,0);

colorBar.transform.colorTransform=color;

}

做好后复制控制器,并列三个控制器。这三个控制器的实例名称分别设定为:rControl,gControl,bControl.

5)现在进入程序编程阶段。

第一帧的脚本如下:

this.addEventListener(Event.ENTER_FRAME,freshColor); function freshColor(e:Event){

rControl.rMulti=1;

gControl.gMulti=1;

bControl.bMulti=1;

var rCol,gCol,bCol;

rCol=rControl.colorValue;

gCol=gControl.colorValue;

bCol=bControl.colorValue;

r.transform.colorTransform=new ColorTransform(0,0,0,1,rCol,0,0,0);

g.transform.colorTransform=new ColorTransform(0,0,0,1,0,gCol,0,0);

b.transform.colorTransform=new ColorTransform(0,0,0,1,0,0,bCol,0);

rg.transform.colorTransform=new ColorTransform(0,0,0,1,rCol,gCol,0,0);

rb.transform.colorTransform=new ColorTransform(0,0,0,1,rCol,0,bCol,0);

gb.transform.colorTransform=new ColorTransform(0,0,0,1,0,gCol,bCol,0);

rgb.transform.colorTransform=new ColorTransform(0,0,0,1,rCol,gCol,bCol,0); }

6)每个滑块内部的第一帧设置如下的脚本:

var colorValue:Number;

var rMulti=0,gMulti=0,bMulti=0;

brick.addEventListener(MouseEvent.MOUSE_DOWN,dragBrick); brick.addEventListener(MouseEvent.MOUSE_UP,dropBrick);

this.addEventListener(Event.ENTER_FRAME,setColor);

function dragBrick(e:MouseEvent){

var rec:Rectangle=new Rectangle(0,-128,0,128);

brick.startDrag(false,rec);

}

function dropBrick(e:MouseEvent){

brick.stopDrag();

}

function setColor(e:Event){

colorValue=-brick.y*2;

if(colorValue==256){

colorValue=255;

}

txtColorValue.text=String(colorValue);

var color:ColorTransform=new ColorTransform (0, 0,0,1,colorValue*rMulti, colorValue *gMulti ,colorValue*bMulti,0);

colorBar.transform.colorTransform=color;

}

7)测试影片,调试程序,直到得到正确效果为止。

相关文档
最新文档