如何在as3中随机更改对象的颜色。
答案 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;
}
}
}