【发布时间】:2011-11-14 12:43:46
【问题描述】:
如何随机改变 as3 中对象的颜色。
【问题讨论】:
-
您的意思是每次运行应用程序时都会更改对象的颜色?
标签: flash actionscript-3
如何随机改变 as3 中对象的颜色。
【问题讨论】:
标签: flash actionscript-3
您可以像这样生成一个随机的有效颜色: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
【讨论】:
我同意谢恩的观点。我还将添加我喜欢的使用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;
}
}
}
【讨论】: