Просмотр полной версии : Задать нужный цвет через flash.geom.ColorTransform
Вот такая вот незадачка... Мануал читал... ничего полезного там не обнаружил, увы...
Нужно из квадратика равномерно закрашеного в цвет 0x999999 получить квадратик закрашеный в цвет 0x8FBE00. Вобщем, сымитировать то, что можно получить в properties -> color -> tint: R=143, G=190, B=0.
При чем свойство ColorTransform.rgb использовать нельзя, можно только непосредственно через задание параметров нового объекта ColorTransform. По принципу:
var _ct:ColorTransform = new ColorTransform(x, x, x, x, x, x, x, x);
Я ей богу умаялся... Или я плохо искал, или в мануале нигде не написано в чем же они меряют цвет, т.е. какие могут быть минимальные и максимальные значения. Методом проб и ошибок получаются самые дурацкие и абсолютно непредсказуемые результаты. Например, изменяя один параметр в сторону увеличения можно получить как красный так и зеленый (иногда желтый) цвет... :(
А что такое alphaOffset и alphaMultiplier не понятно вообще... Ни в чем измеряется, ни на что влияет...
Буду признателен за человеческое объяснение.
terbooter
07.11.2006, 09:30
Если я правильно понял, то при перекраске ручками
properties -> color -> tint: R=143, G=190, B=0.
прозрачность выставляется 100%,
иначе не получить требуемый цвет.
То есть цвет квадратика до перекраски не имеет никакого значения,
тогда
New red value = (old red value * redMultiplier) + redOffset
New green value = (old green value * greenMultiplier) + greenOffset
New blue value = (old blue value * blueMultiplier) + blueOffset
New alpha value = (old alpha value * alphaMultiplier) + alphaOffset
Выставляем множители на значения старого цвета в нули
а оффсеты, это нужные значения
var myCT:ColorTransform = new ColorTransform(0, 0, 0, 0, 143, 190, 0, 255);
спасибо, я понял в чем была ошибка, я думал, что альфа идет перед остальными каналами, а не после...
Только, если можно, тогда еще вопрос. Multiplier'ы могут быть от 0 до 255 или до 100? (на глаз тяжело определить) =)
У оффсета может быть и отрицательное значение?
В принципе они не ограничены, ставь, сколько влезет, пока есть визуальная разница.
Оффсет может быть и отрицательным.
:umnik2: Умники помогите нубу
Я подгружаю .swf таким способом...
var mc0:MovieClip = this.createEmptyMovieClip ("mc0" + this.getNextHighestDepth(), this.getNextHighestDepth())
mc0._x = 866;
mc0._y = 0;
mc0.loadMovie("player/sound0s.swf");
Как программно задать параметр Tint для подгружаемого объекта?
terbooter
10.01.2007, 13:10
import flash.geom.ColorTransform;
import flash.geom.Transform;
_root.createEmptyMovieClip("c",3);
_root.c.loadMovie("333.swf");
var myCT:ColorTransform = new ColorTransform(0, 0, 0, 0, 143, 190, 0, 255);
var trans:Transform = new Transform(c);
trans.colorTransform = myCT;
Что-то у меня есть подозрение, что это надо делать после загрузки.
tuzhila, отказаться от loadMovie и использовать MovieClipLoader. После загрузки (onLoadInit) повесить ColorTransform (пример выше, за исключением загрузки).
Twilight
12.01.2007, 18:09
Ребят, а как программно менять цвет у объекта постепенно? допустим с цвета #999999 до #E00547.
например при наведении на объект мышкой он начинает изменять цвет, а при сведении он менял цвет обратно (при чем хочется учесть то что откат цвета должен происходить с того цвета до которого объект успел видоизмениться).
var _null:Number = 0x000000;
_root.onEnterFrame = function() {
_null += 0x01;
trace(_null);
}
http://dev.etcs.ru/blog/as2/ru/etcs/draw/simplegradient/
Twilight
17.01.2007, 13:38
спасибо огромное, буду разбираться.
Что-то у меня есть подозрение, что это надо делать после загрузки.
tuzhila, отказаться от loadMovie и использовать MovieClipLoader. После загрузки (onLoadInit) повесить ColorTransform (пример выше, за исключением загрузки).
Многоуважаемый а не могли бы Вы быстренько накатать код этого "волшебства" для задания "tint"
Все необходимые примеры есть в хелпе.
Дать ссылки?
Все необходимые примеры есть в хелпе.
Дать ссылки?
aga )
http://livedocs.macromedia.com/flash/8/main/00002538.html
http://livedocs.macromedia.com/flash/8/main/00002083.html
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.