Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Задать нужный цвет через flash.geom.ColorTransform (http://www.flasher.ru/forum/showthread.php?t=87508)

wvxvw 07.11.2006 06:35

Задать нужный цвет через 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);

wvxvw 07.11.2006 20:53

спасибо, я понял в чем была ошибка, я думал, что альфа идет перед остальными каналами, а не после...
Только, если можно, тогда еще вопрос. Multiplier'ы могут быть от 0 до 255 или до 100? (на глаз тяжело определить) =)
У оффсета может быть и отрицательное значение?

etc 07.11.2006 21:00

В принципе они не ограничены, ставь, сколько влезет, пока есть визуальная разница.
Оффсет может быть и отрицательным.

tuzhila 10.01.2007 11:08

: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;


etc 10.01.2007 13:46

Что-то у меня есть подозрение, что это надо делать после загрузки.

tuzhila, отказаться от loadMovie и использовать MovieClipLoader. После загрузки (onLoadInit) повесить ColorTransform (пример выше, за исключением загрузки).

Twilight 12.01.2007 18:09

Ребят, а как программно менять цвет у объекта постепенно? допустим с цвета #999999 до #E00547.
например при наведении на объект мышкой он начинает изменять цвет, а при сведении он менял цвет обратно (при чем хочется учесть то что откат цвета должен происходить с того цвета до которого объект успел видоизмениться).

wvxvw 12.01.2007 18:24

Код:

var _null:Number = 0x000000;
_root.onEnterFrame = function() {
        _null += 0x01;
        trace(_null);
}


etc 12.01.2007 18:31

http://dev.etcs.ru/blog/as2/ru/etcs/...implegradient/


Часовой пояс GMT +4, время: 06:00.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.