вы можете использовать flash.filters.ColorMatrixFilter - примеры есть в связанной документации.
это также очень легко сделать с помощью ColorShortcuts Tweener, назначив _Color
свойство шестнадцатеричное значение цвета. кроме того, этот метод позволяет вам очень легко плавно переходить в цвет, при необходимости назначая ненулевое значение обязательному свойству time
.
Tweener.addTween(myShape, {time: 0.0, _Color: 0xFF0000});
имейте в виду, что любые растровые фильтры, такие как тени, или любые дочерние элементы вашей фигуры (если это спрайт) также изменят цвет. хотя так же легко отделить каждый элемент вашей фигуры с помощью контейнера.
[EDIT] вместо использования Tweener, как я поспешно предложил ранее, или довольно сложного ColorMatrixFilter, вы можете использовать ColorTransform, чтобы легко изменить цвет экранного объекта. это также самый распространенный подход в AS3. вот пример:
import flash.geom.ColorTransform;
var myShape:Shape = new Shape();
myShape.graphics.beginFill(0xFF0000, 1.0);
myShape.graphics.drawRect(0, 0, 100, 100);
myShape.graphics.endFill();
addChild(myShape);
var myColorTransform:ColorTransform = new ColorTransform;
myColorTransform.color = 0x0000FF;
myShape.transform.colorTransform = myColorTransform;
приведенный выше код рисует красный прямоугольник, добавляет его в рабочую область, а затем использует объект ColorTransform для изменения его цвета на синий.
person
Chunky Chunk
schedule
15.06.2011