【问题标题】:ActionScript 3.0/Flash Builder give an object a random colorActionScript 3.0/Flash Builder 为对象提供随机颜色
【发布时间】:2011-11-14 12:43:46
【问题描述】:

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

【问题讨论】:

  • 您的意思是每次运行应用程序时都会更改对象的颜色?

标签: flash actionscript-3


【解决方案1】:

您可以像这样生成一个随机的有效颜色: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

【讨论】:

  • 在这种情况下实际上不需要,但最好添加它
【解决方案2】:

我同意谢恩的观点。我还将添加我喜欢的使用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;
        }           
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多