加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【ActionScript】组件的颜色变换

发布时间:2020-12-15 20:10:26 所属栏目:百科 来源:网络整理
导读:ActionScript除了控制组件的位置、旋转位置与透明度以外,还能使组件变色。 如下图的一个例子: 一个原本是淡蓝色的正方形,从红色变成蓝色再变成绿色,最后变回红色。 这里使用ActionScript则如下实现: 一、基本布局 与《【ActionScript】ENTER_FRAME事件

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();//开始定时器  

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读