Вход

Просмотр полной версии : tint программно


Chas
16.04.2007, 13:59
как сделать эффект аналогичный tint программно для мувика на сцене. в поиске советуют setTransform, но по хелпу выходит, что функция устаревшая и не рекомендуема к использованию. в то же время, я не могу заробраться, чем пользоватся в flash8 вместо нее.

CorC
16.04.2007, 14:06
класс ColorTransform не пробовали? http://livedocs.adobe.com/flash/8/main/00002083.html
Color не совсем уж и устарел, им проще пользоваться, могли бы просто его расширить а не вводить новый класс

Chas
16.04.2007, 14:21
блин...
зделал тестовый мувик - просто прямоугольник на сцене, конвертированный в мувик с именем экземпляра mov.
пробовал как просто

//делаю мувик абсолютно черным
mov.transform.colorTransform.redMultiplier=0;
mov.transform.colorTransform.greenMultiplier=0;
mov.transform.colorTransform.blueMultiplier=0;

так и

var current_transform = new Transform(mov);
var current_color = new ColorTransform(0,0,0,1,0,0,0);
current_transform.colorTransform = current_color;
trace (mov.transform.colorTransform);


ноль эффекта.
кроме того, если сразу за кодом поставить trace (mov.transform.colorTransform), то видно, что значения переменных не изменились =/

CorC
16.04.2007, 14:28
Что то вы попутали видимо с transform :)

var c:Color=new Color(mov);
var myColorTransform = { ra: '50', rb: '244', ga: '40', gb: '112', ba: '12', bb: '90', aa: '40', ab: '70'}
c.setTransform(myColorTransform);

Chas
16.04.2007, 14:58
это с color.
но я уже тут как раз вкупил с colorTransform. просто на конструктор он не реагирует почему-то, хотя в хелпе и написано =/.

c=new flash.geom.ColorTransform();
//превращаем в призрака =)
c.alphaMultiplier=0.5; c.redMultiplier=0; c.greenMultiplier=0;c.blueMultiplier=0;
mov.transform.colorTransform=c;


спасибо за помощь