ActionScript 3.0 / Flash Builder为对象提供随机颜色

时间:2011-11-14 12:43:46

标签: flash actionscript-3

如何在as3中随机更改对象的颜色。

2 个答案:

答案 0 :(得分:4)

您可以生成如下随机有效颜色:Math.round(Math.random()*0xFFFFFF)

例如,这会绘制5个随机颜色的正方形:

for(var i:int = 0; i < 5; i++) {
    var num:uint = Math.round(Math.random()*0xFFFFFF);
    trace(num.toString(16));
    var mc:Shape = addChild(new Shape()) as Shape;
    mc.graphics.beginFill(num);
    mc.graphics.drawRect(100*i,0,80,80);
}

或者,如果你需要更多控制颜色范围,那么这里有一个工人阶级:QuasiUseful : AS3 Random Color Generator

答案 1 :(得分:1)

我同意谢恩的观点。我还会添加我使用flash.geom.colorTransform动态更改颜色的首选方法。

这允许您更改任何形状的颜色,包括不规则形状,而无需知道确切的尺寸。您可以使用以下方法结合Shane的随机数生成器代码来执行此任务。

import flash.geom.ColorTransform;   
const INVALID_HEX_COLOR_VALUE:uint = 16777216;  //Value that exceeds color range (over #FFFFFF)

function applyColorSchemeTo(obj:DisplayObject, otherColor:uint = INVALID_HEX_COLOR_VALUE):void {
    if(obj != null){
        var colorTransform:ColorTransform = obj.transform.colorTransform;
        if(otherColor < INVALID_HEX_COLOR_VALUE)
        {
            colorTransform.color = otherColor;
            obj.transform.colorTransform = colorTransform;
        }           
    }
}