ActionScript 3.0 / Flash Builder придают объекту произвольный цвет - PullRequest
1 голос
/ 14 ноября 2011

Как можно случайно изменить цвет объекта в as3.

Ответы [ 2 ]

4 голосов
/ 14 ноября 2011

Вы можете сгенерировать случайный действительный цвет, подобный этому: 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Генератор цвета

1 голос
/ 14 ноября 2011

Я согласен с Шейном. Я также добавил бы мой предпочтительный метод динамического изменения цвета, используя flash.geom.colorTransform.

Это позволяет вам менять цвета для любой формы, в том числе неправильной, без необходимости знать точные размеры. Для выполнения этой задачи вы можете использовать следующий метод в сочетании с кодом генератора случайных чисел Шейна.

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;
        }           
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...