标签:flash actionscript3.0 颜色 变换 actionscript
ActionScript除了控制组件的位置、旋转位置与透明度以外,还能使组件变色。
如下图的一个例子:
一个原本是淡蓝色的正方形,从红色变成蓝色再变成绿色,最后变回红色。
这里使用ActionScript则如下实现:
一、基本布局
与《【ActionScript】ENTER_FRAME事件与组件的旋转》(点击打开链接)一模一样,就是画一个正方形的影片剪辑。
1、通过Ctrk+F8,或者插入->新建原件,新建一个名为square的影片剪辑
2、在影片剪辑中通过矩形工具,设置其没有笔触,否则一会儿用选择工具很难选取,在影片剪辑中任意拖出一个矩形。之后使用选择工具,选择这个矩形,如图设置其位置于大小,X:-100,Y:-100,分别为,宽、高200px的相反数的一半。之后点左上角,切换回场景1。
3、在舞台中,按F11打开库,把库中的square影片剪辑拖到舞台,之后右键第1关键帧,打开动作面板,开始脚本的写作。
二、脚本编程
import flash.utils.Timer; import flash.geom.ColorTransform; var colorTransform=new ColorTransform(); //清除组件现有的颜色 colorTransform.redMultiplier=0; colorTransform.greenMultiplier=0; colorTransform.blueMultiplier=0; var flag =0;//用来一次颜色转换是否完成 var timer = new Timer(100,0);//此定时器每100毫秒执行1次,0意为执行无数次,不停息。设置为n则执行n次之后自动停止 timer.addEventListener("timer",function(){ if(flag==0){ colorTransform.greenOffset-=10; colorTransform.redOffset+=10;//square组件的R值从每次增加10,G值每次减少10 square.transform.colorTransform=colorTransform;//对square组件应用颜色变化。 if(colorTransform.redOffset>255){ flag=1; } } else if(flag==1){ colorTransform.redOffset-=10; colorTransform.blueOffset+=10; square.transform.colorTransform=colorTransform; if(colorTransform.blueOffset>255){ flag=2; } } else if(flag==2){ colorTransform.blueOffset-=10; colorTransform.greenOffset+=10; square.transform.colorTransform=colorTransform; if(colorTransform.greenOffset>255){ flag=0; } } }); timer.start();//开始定时器
标签:flash actionscript3.0 颜色 变换 actionscript
原文地址:http://blog.csdn.net/yongh701/article/details/46518441