все дело с 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