Форум 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=123207)

Pasquill 27.03.2009 02:56

setInterval и его "деактивация"
 
подскажите, плиз
хочу что бы при нажатии на кнопку функция выполнялась не один раз, а все время до отжатия кнопки
есть код :
Код AS1/AS2:

num=1900;
btn.onPress=function() {
        function moveUp():Void {
        num = num+1;
        fill = num;
        } var intervalID = setInterval(moveUp, 300);
}

как остановить выполнение функции moveUp? а то она выполняется и после отжатия и после RollOut...
или может есть другой более рациональный способ реализовать задачу?

iNils 27.03.2009 03:34

Код AS1/AS2:

var num:Number = 1900;
var intervalID:Number;
function moveUp ():Void {
        num = num + 1;
        fill = num;
}
btn.onPress = function () {
        intervalID = setInterval (this, "moveUp", 300);
};
btn.onRelease = function () {
        clearInterval (intervalID);
};
btn.onReleaseOutside = btn.onRelease;


Pasquill 27.03.2009 04:08

clearInterval не срабатывает, иначе бы не было вопроса на форуме =(
Flash 8, AS2 ...

iNils 27.03.2009 05:19

Попробуйте этот код с чистого листа
Код AS1/AS2:

var btn:MovieClip = this.createEmptyMovieClip ("mc", this.getNextHighestDepth ());
btn.beginFill (0);
btn.lineTo (100, 0);
btn.lineTo (100, 100);
btn.lineTo (0, 100);
btn.lineTo (0, 0);
btn.endFill ();
var num:Number = 1900;
var intervalID:Number;
var test:Number = 0;
function moveUp (t:Number):Void {
        num = num + 1;
        trace (t + " : " + num);
}
btn.onPress = function () {
        intervalID = setInterval (this._parent, "moveUp", 300, test);
        test++;
};
btn.onRelease = function () {
        clearInterval (intervalID);
};
btn.onReleaseOutside = btn.onRelease;


Pasquill 27.03.2009 15:32

iNils
после некоторых незначительных корекций все заработало так, как мне надо. спасибо!
похоже все дело было в том, что бы функцию moveUp вынести отдельно

iNils 27.03.2009 15:35

А я бы сказал, что определение var intervalID надо было вынести. Переменная, определенная как локальная внутри функции, умирает после окончания выполнения функции.

Pasquill 27.03.2009 20:54

логично


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

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