Форум 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)
-   -   помогите с setInterval (http://www.flasher.ru/forum/showthread.php?t=121414)

solo19770701 16.02.2009 03:33

помогите с setInterval
 
Всем привет. Вопрос. В основной временной линейке на первом кадре устанавливаю интервал, пишу код для первой кнопки на очистку интервала, и во второй кнопке код на возобновление интервала. Так вот, после того, как я интервал очищаю, а потом снова возобновляю с помощю второй кнопки, то первая кнопка перестает работать. Тоесть интеварл зацикливается, и баста. Вот так все выглядит на деле
Код AS1/AS2:

///// Main Time Line, frame 1
function myFunction():Void
{
square.play()
}
var intervalID:Number = setInterval(myFunction, 4000);
 
buttonOne.onPress = function()
{
clearInterval(intervalID);
buttonTwo._alpha = 100;
};
 
buttonTwo.onPress = function()
{
var intervalID:Number = setInterval(myFunction, 4000);
buttonTwo._alpha = 0;
}

Вроде этого. Но вот беда, как мне заставить первую кнопку опять работать. Подозреваю, что проблема в том, что интервал вызывается из разных скопов. А как все запихнуть в оду группу, мозги не доходят. Нужан ваша помощ.
Спасибо.:wacko:

iNils 16.02.2009 03:45

Код AS1/AS2:

buttonTwo.onPress = function() {
        intervalID = setInterval(myFunction, 4000);
        buttonTwo._alpha = 0;
}


solo19770701 16.02.2009 05:56

to iNils: как всегда выручил.
Спасибо.
Будешь у нас в Maryland, пивом угощу.:drinks:

Добавлено через 1 час 48 минут
to iNils: если можно, еще один вопрос. Хочу утилизировать скрипт. К приеру есть 25 кнопок, они все кроме одной имеют одинаковую альфу 26, но одна кнопка с альфой 68.
Код AS1/AS2:

/////// this is how it looks right now
b1._alpha = 68;
b2._alpha = 26;
b3._alpha = 26;
b4._alpha = 26;
b5._alpha = 26;
b6._alpha = 26;
b7._alpha = 26;
b8._alpha = 26;
b9._alpha = 26;
b10._alpha = 26;

не могу додуматься, как сделать скрипт короче. Если бы они все были с 1 по 25 одинаковые, то я бы через if(i=0, i<25, i++), но тут получается в каждом кадре альфа одной кнопик отличается от группы.
Спасибо.

alecsisk 16.02.2009 09:58

Код AS1/AS2:

for (var ch=0; ch < 25; ch++) {
        this['b'+ch]._alpha = 25;
        if (ch == 1) {
                this['b'+ch]._alpha = 68;
        }
}

как-то так

solo19770701 16.02.2009 17:54

to Код AS1/AS2: спасибо. А то поглядишь на то что я пишу и плакать хочется.

qazwsx 16.02.2009 18:22

На это тоже. Не обязательно каждую итерацию цикла проверять равно ли ch одному


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

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