все с setInterval является областью действия.
как выглядит ваш код, p2 находится на основной временной шкале и относится к этому / _level0 / _root, верно?
clearInterval () также является глобальной функцией, поэтому ее можно вызывать из любой другой функции, вложенной в любой фрагмент ролика, при условии, что вы можете получить доступ к идентификатору интервала (p2 в вашем случае)
так что если у вас есть что-то вроде:
p2 = setInterval(function () { trace('p2 running'); }, waitTime);
Вы можете иметь отдельную функцию, такую как
function clearP2(){
clearInterval(p2);
}
если эта функция вложена в некоторый клип, вы всегда можете использовать грязный all _root (как в абсолютном пути)
например.
// clearP2 живет во вложенном клипе далеко от _root
function clearP2(){
clearInterval(_root.p2);
}
конечно, вы можете использовать и относительные пути
function clearP2(){
clearInterval(_parent._parent._parent.p2);//depending on the clips hierarchy
}
Идея, которую следует иметь в виду, заключается в том, чтобы обеспечить доступ к идентификатору интервала там, где он вам нужен, clearInterval () является глобальным