Pergunta

p2 = setInterval (function () {clearInterval (p2); algum código aqui;}, waittime)

Eu preciso sair desse intervalo em uma função separada.

Isso reproduz uma variedade de filmes SWF - há uma função de purga que precisa interromper esse intervalo.

Como posso parar esse intervalo de uma função separada no AS2?

Foi útil?

Solução

A coisa toda com setInterval é o escopo.

A maneira como o seu código parece, P2 está na linha do tempo principal e pertence a isso/_Level0/_root, certo?

ClearInterval () também é uma função global, para que você possa chamá -la de qualquer outra função aninhada em qualquer clipe de filme, desde que você possa ter acesso ao ID do intervalo (P2 no seu caso)

Então, se você tem alguns gostos:

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

você pode ter uma função separada como

function clearP2(){
clearInterval(p2);
}

Se essa função estiver aninhada em algum clipe, você sempre poderá usar o sujo de todas as raízes (como no caminho absoluto)

por exemplo, // clearp2 vive em um clipe aninhado muito longe de _root

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

Claro que você pode usar caminhos relativos também

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

A idéia a ter em mente é garantir que você possa acessar o ID do intervalo onde você precisa, ClearInterval () é global

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top