PDA

Просмотр полной версии : медленно проявляющийся клип


HRustBB
03.04.2009, 14:19
подскажите пожалуйсто как сделать медленно проявляющийся клип?
мой вариант:

onClipEvent(enterFrame){
for(i=0;i<100;i++){
var pause:Number=setInterval(function(){clearInterval(pause)},100);
this._alpha = i;
}
}

но, чтото не получается

Zik.
03.04.2009, 14:28
Не совсем понятно, зачем вам понадобился цикл и setInterval.
Все ведь гораздо проще:

имя_клипа._alpha = 0;
имя_клипа.onEnterFrame = function() {
this._alpha += 1
}

nOobCrafter
03.04.2009, 15:10
только ентерфрейм надо бы удалить после того как альфа будет равной 100.
имя_клипа._alpha = 0;
имя_клипа.onEnterFrame = function()
{
this._alpha += 1
if this._alpha == 100)
{
delete this.onEnterFrame;
}
}

Zik.
03.04.2009, 15:40
Ну да, точно :)

Stargazer
03.04.2009, 15:40
HRustBB, "Слышим звон..."

Ваш код работал бы, если бы 2 заблуждения оказались правдой.

1. onEnterFrame срабатывает однажды (на самом деле это событие выполняется постоянно каждый раз, когда флеш рисует новый кадр)

2. setInterval останавливает выполнение программы на какое -то время (на самом деле setInterval задаёт функцию, которая будет выполняться каждые сколько-то миллисекунд. при этом выполнение остального кода не останавливается)

KiL33
04.04.2009, 07:53
только ентерфрейм надо бы удалить после того как альфа будет равной 100.

Тогда уж так:
имя_клипа._alpha = 0;
имя_клипа.onEnterFrame = function()
{
this._alpha += 1
if (this._alpha > 100)
{
delete this.onEnterFrame;
}
}
:)

Zik.
04.04.2009, 09:07
а еще лучше
имя_клипа._alpha = 0;
имя_клипа.onEnterFrame = function()
{
this._alpha += 1
if (this._alpha >= 100)
{
delete this.onEnterFrame;
}
}

Psycho Tiger
04.04.2009, 11:53
>100? Чтобы альфа оказалась равной 101 при удалении клипа?