Как выйти из заданного интервала в Action Script 2

p2 = setInterval(function () { clearInterval(p2); здесь некоторый код; }, waitTime)

Мне нужно вырваться из этого интервала в отдельную функцию.

Это воспроизводит массив фильмов SWF - есть функция очистки, которая должна остановить этот интервал.

Как остановить этот интервал из отдельной функции в AS2?


person Todd Moses    schedule 11.08.2009    source источник


Ответы (1)


все дело с setInterval в области видимости.

судя по тому, как выглядит ваш код, p2 находится на основной временной шкале и принадлежит этому /_level0/_root, верно?

clearInterval() также является глобальной функцией, поэтому вы можете вызывать ее из любой другой функции, вложенной в любой фрагмент ролика, если вы можете получить доступ к идентификатору интервала (p2 в вашем случае)

так что если у вас есть что-то вроде:

p2 = setInterval(function () { trace('p2 running'); }, waitTime);

у вас может быть отдельная функция, например

function clearP2(){
clearInterval(p2);
}

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

например //clearP2 живет во вложенном клипе далеко-далеко от _root

function clearP2(){
clearInterval(_root.p2);
}

конечно, вы также можете использовать относительные пути

function clearP2(){
clearInterval(_parent._parent._parent.p2);//depending on the clips hierarchy
}

идея, о которой следует помнить, состоит в том, чтобы убедиться, что вы можете получить доступ к идентификатору интервала там, где вам это нужно, clearInterval() является глобальным

person George Profenza    schedule 15.08.2009