PDA

Просмотр полной версии : Глюки с паузой.


METEOP
15.07.2004, 14:38
Для пауз в клипах использую:

stop();
id = setInterval(function () { clearInterval(id);play();}, 2000);


но столкнулся с такой штукой: если в клипе нажать во время паузы кнопку для перехода на следующий кадр 2 раза подряд, то флешь с ума сходит и не видит никаких стопов и пауз и начинает прокручивать клипы без остановки по кругу.

Исходник прилагается.

METEOP
15.07.2004, 14:40
Исходник.

Ромастый
15.07.2004, 15:36
zip пустой.

METEOP
15.07.2004, 16:13
Упс... попробую еще раз, сори

Ромастый
15.07.2004, 16:39
Ну, на паузу он, так скажем, вообще не ставится...
У тебя setInterval не удаляется и срабатывает через две секунды. На кнопке паузы :
on(release) {
clearInterval(id);
stop();
}

METEOP
15.07.2004, 20:20
с одной паузой помогло, спасибо, а как быть с двумя, если еще во внутреннем клипе задержки стоят? :confused:

Ромастый
15.07.2004, 20:25
Аналогично.
Обзываешь клип допустим mov1 и:
on(release) {
stop();
clearInterval(mov1.id1);
clearInterval(id);
}
только структура у тебя не очень удобная. Заколебешься назначать кнопке плэй, что плэить:) То ли _root, то ли mov1

METEOP
16.07.2004, 02:36
Получается что если мне надо в мувике стоп нажать в определенном месте, я должен на кнопку прописать clearinterval для всех клипов где он в настоящее время используется? А если в 10 клипах расставлены паузы? Как то не очень удобно будет отслеживать где когда какой интервал снять.

Ромастый
16.07.2004, 11:27
Во-во:)

Есть правда компромиссный вариант - назвать Все мувики и переменные, которым setInterval присваиваешь в каждом кадре одинаково: mov1 и id1. А в руте setInterval убрать вообще нафиг. В конце каждого мувика писать _parent.nextFrame();
Тогда кнопки стоп и плэй управляют только внутренними клипами, а внутренние клипы, заканчиваясь, заставляют рут переходить к следующему кадру с новым клипом.

METEOP
16.07.2004, 14:07
Спасибо, попробую.

fiot
13.08.2004, 13:10
может мне кто нибдудь объяснит, почему

_global.delay = function ()
{
trace(this.i = ++this.constructor.count);
this.time = 2000
this.init();
// ASSetPropFlags(this, null, 1, 1)
}
delay.prototype.count = 0
delay.prototype.init = function ()
{
clearInterval(this.timer)
this.timer = setInterval(function()
{
this = arguments[0]
_root._event()
clearInterval(this.timer)
},
this.time,
this
)
trace(this.timer+'_'+typeof(this.timer))
return true
}
//ASSetPropFlags(delay.prototype, null, 1, 1)
Key.addListener (_key = {})
_key.onKeyUp = function ()
{
new delay()
}
_root._event = function ()
{
trace('event')
}

this.timer - который есть как setInterval typeof выдаёт Number и он инкриментируется :eek: :eek: :eek: как можно этого избежать ? так что бы я наждал 3-и раза клавишу а событие произошло одно ?