Flash元件动态设置颜色
一、说明
给flash中的元件设置颜色,有两种结果
1、直接设置元件的颜色,那么元件之前的颜色将被覆盖
2、在元件当前颜色的基础上,设置颜色,可以根据当前颜色的色阶融合颜色
下面我说的是第二种方式,因为元件当前有颜色,所以在设置它的颜色的时候会跟当前颜色的值结合起来,算出一个新的颜色,新的颜色会保存当前染色的灰度,产生类似渐变或者别的效果,这个就要你自己去设置了,你可以试一下,创建一个元件,它的颜色值从白到黑,在看看效果
二、效果
下面是我绘制的一个有渐变色的元件
接下来我用下面的代码给他设置一个红色,会产生这样一个效果
我给它设置了一个红色,你看,它是不是保存了之前颜色的色阶,按照色阶融合,也产生了渐进的颜色,至于其它效果就要看你自己搭配了
三、代码
//这个是你要赋值的元件,我这里为了演示是新建的,你可以用你自己的元件
var _component:MovieClip = new MovieClip();
var value:uint=0xffffff;//颜色值
var l:uint = value.toString(16).length;//判断颜色值长度,因为在flash中颜色有8位长度和10位(加上透明值)
var c:uint = value;
//对数值进行位移计算,获取RGB的颜色
var a:int = l == 8?(c >> 24) & 0xff: -1;
var r:uint=(c >> 16)&0x00ff;
var g:uint=(c >> 8)&0x0000ff;
var b:int=c&0x000000ff;
//var color:ColorTransform=new ColorTransform(0,0,0,0,r,g,b,a);如果你想使用第一种方法设置颜色,就新建一个颜色,然后直接赋值给元件
var color:ColorTransform = _component.transform.colorTransform;//获取元件当前颜色
color.redMultiplier = r / 255;//对颜色赋值
color.greenMultiplier = g / 255;
color.blueMultiplier = b / 255;
a!=-1?color.alphaMultiplier = a / 255:null;//设置透明值,如果没有就不设置
_component.transform.colorTransform = color;//最后将颜色在赋值给元件
更多内容请看:[url="http://www.yoewan.com"]yoewan分享[/url],[url="http://www.yoewan.com/flex"]Flash教程[/url]
标签:yoewan.com,Flash元件颜色设置,Flash设置元件颜色
一、说明
给flash中的元件设置颜色,有两种结果
1、直接设置元件的颜色,那么元件之前的颜色将被覆盖
2、在元件当前颜色的基础上,设置颜色,可以根据当前颜色的色阶融合颜色
下面我说的是第二种方式,因为元件当前有颜色,所以在设置它的颜色的时候会跟当前颜色的值结合起来,算出一个新的颜色,新的颜色会保存当前染色的灰度,产生类似渐变或者别的效果,这个就要你自己去设置了,你可以试一下,创建一个元件,它的颜色值从白到黑,在看看效果
二、效果
下面是我绘制的一个有渐变色的元件
接下来我用下面的代码给他设置一个红色,会产生这样一个效果
我给它设置了一个红色,你看,它是不是保存了之前颜色的色阶,按照色阶融合,也产生了渐进的颜色,至于其它效果就要看你自己搭配了
三、代码
//这个是你要赋值的元件,我这里为了演示是新建的,你可以用你自己的元件
var _component:MovieClip = new MovieClip();
var value:uint=0xffffff;//颜色值
var l:uint = value.toString(16).length;//判断颜色值长度,因为在flash中颜色有8位长度和10位(加上透明值)
var c:uint = value;
//对数值进行位移计算,获取RGB的颜色
var a:int = l == 8?(c >> 24) & 0xff: -1;
var r:uint=(c >> 16)&0x00ff;
var g:uint=(c >> 8)&0x0000ff;
var b:int=c&0x000000ff;
//var color:ColorTransform=new ColorTransform(0,0,0,0,r,g,b,a);如果你想使用第一种方法设置颜色,就新建一个颜色,然后直接赋值给元件
var color:ColorTransform = _component.transform.colorTransform;//获取元件当前颜色
color.redMultiplier = r / 255;//对颜色赋值
color.greenMultiplier = g / 255;
color.blueMultiplier = b / 255;
a!=-1?color.alphaMultiplier = a / 255:null;//设置透明值,如果没有就不设置
_component.transform.colorTransform = color;//最后将颜色在赋值给元件
更多内容请看:[url="http://www.yoewan.com"]yoewan分享[/url],[url="http://www.yoewan.com/flex"]Flash教程[/url]
标签:yoewan.com,Flash元件颜色设置,Flash设置元件颜色