PDA

Просмотр полной версии : fade-in and zoom effect


grunwald
19.10.2005, 02:11
Добрый день,

Я вроде бы почти ничего не рублю во Flash пока и вот я пытаюсь выполнить вышеописанный еффект, как на сайте (http://www.thevoid.co.uk), но все безуспешно, немог бы кто нибудь мне обяснить как реакизовать fade-in effect средствами AS2? Заранее вам благодарен.

Iv
19.10.2005, 04:06
цветом мувиклипов можно управлять с помощью объекта Color
второй вариант - они fade-in реализовали через свойство мувиклипа _alpha
причем второе более вероятно.
в любом случае значение изменяется на onEnterFrame или через setInterval
причем, первое предпочтительно.

nuran
19.10.2005, 05:28
> цветом мувиклипов можно управлять с помощью объекта Color

В восьмёрке Color — deprecated ...

Iv
19.10.2005, 06:16
ага. в связи с переходом на черно-белые ролики
в целях повышения производительности :)

nuran
19.10.2005, 06:21
ага. в связи с переходом на черно-белые ролики
в целях повышения производительности :)
Оговорился, в Flash 8 класс Color являеться deprecated :)

Iv
19.10.2005, 06:25
да я не придираюсь к словам. сорри. шутю так я.
утро. спать пора. потому и шутки не всегда удачные.

nuran
19.10.2005, 12:39
Юзаю такой прототипчик (хотя он мне не нравиться, но переделать всё руки не доходят):

// (c) Nuran.org
//----------------------------------------------------------------------------------------------------
_global.MovieClip.prototype.SetColor = function (color:Number)
{
var n:String = String (Math.random ());
this[n] = new Color (this);
this[n].setRGB (color);
delete n;
delete this[n];
};
//----------------------------------------------------------------------------------------------------
_global.MovieClip.prototype.ColorFade = function (newColor:Number, easeType:Function, time:Number)
{
var mc_mc:MovieClip = this.createEmptyMovieClip (String (Math.round (Math.random () * 999999999999)), this.getNextHighestDepth ());
var n_color:Color = new Color (mc_mc);
n_color.setRGB (newColor);
var n_color_r:Number = n_color.getTransform ().rb;
var n_color_g:Number = n_color.getTransform ().gb;
var n_color_b:Number = n_color.getTransform ().bb;
mc_mc.removeMovieClip ();
var c_color:Color = new Color (this);
var c_color_r:Number = c_color.getTransform ().rb;
var c_color_g:Number = c_color.getTransform ().gb;
var c_color_b:Number = c_color.getTransform ().bb;
var ratio_r:Number = n_color_r - c_color_r;
var ratio_g:Number = n_color_g - c_color_g;
var ratio_b:Number = n_color_b - c_color_b;
var from:Number = 0;
var to:Number = 1;
var t:mx.transitions.Tween = new mx.transitions.Tween (this, "", easeType, from, to, time, true);
t.addListener ({onMotionChanged:function ()
{
c_color.setRGB ((c_color_r + ratio_r * arguments[1]) << 16 | (c_color_g + ratio_g * arguments[1]) << 8 | (c_color_b + ratio_b * arguments[1]));
}});
return t;
};
// Использование:
my_mc.SetColor (0x000000);
my_mc.ColorFade (0xFF0000, mx.transitions.easing.None.easeNone, 4);
// где my_mc — Ваш MovieClip

grunwald
19.10.2005, 16:20
Подождите а для чего вообще нужен setInterval() здесь? И как вообще реализовать это динамически, я пока все это вижу следующим способом:
1. Создать мувик
2. Создать функцию, скажем placeText(text);
3. Мувик запускаем, потом вызываем фукцию
4. В функции создаем мувик для каждой буквы text;
5. Рисуем каздую букву

Вот с 4 и 5 этапами я не очень разобрался, или может есть другая возможность реализовать мою задачу?