Настройка объекта ColorTransform - PullRequest
0 голосов
/ 17 января 2011

Официальные документы говорят:

Вы должны использовать новый ColorTransform () конструктор для создания ColorTransform объект, прежде чем вы можете вызвать методы объекта ColorTransform.

Так значит ли это каждый раз, когда я хочу настроить цветовое преобразование, мне нужно создать новый экземпляр? Если так, то свойства сеттера кажутся довольно бессмысленными, и мои тесты показывают, что это так.

Так что, если каждый рендер, который я хочу циклировать, скажет redOffset, основанный на времени (чтобы получить пульсирующий эффект), мне нужно вручную создавать новый ColorTransform, передавая все аргументы конструктора из this.transform.colorTransform:

var newRedOffset:Number = ...
transform.colorTransform = new ColorTransform(
 transform.colorTransform.redMultiplier, transform.colorTransform.greenMultiplier,
 transform.colorTransform.blueMultiplier, transform.colorTransform.alphaMultiplier,

 newRedOffset, transform.colorTransform.greenOffset,
 transform.colorTransform.blueOffset, transform.colorTransform.alphaOffset );

Кажется ужасным, есть ли ярлык?

Ответы [ 2 ]

2 голосов
/ 17 января 2011

Нет, это не так. Вы можете использовать colorTransform объекта, который уже есть, но вам нужно переназначить его после изменения значений:

var trans:ColorTransform = sprite.transform.colorTransform;
trans.blueOffset += 10;
sprite.transform.colorTransform = trans;
2 голосов
/ 17 января 2011

вместо того, чтобы иметь дело с множителями цвета и альфа-смещением, вот простой, прямой способ изменить цвет экранного объекта:

var ct:ColorTransform = new ColorTransform();
ct.color = 0xFF0000; //Simple Hex Color value

myDisplayObject.transform.colorTransform = ct;

таким образом вы можете изменить свойство color того же объекта ColorTransform, а затем повторно применить его к экранному объекту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...