Eu muitas vezes querem desencadear uma determinada função apenas uma vez, mas eu preciso provocá-lo a partir de dentro de outra função que é chamada repetidamente. Por exemplo, tirar um instantâneo de algo para uso posterior. Eu costumo fazê-lo através da criação de um boolean global.
Eu estou querendo saber se a maneira que eu faço é realmente melhor maneira?
Eu me lembro de ler que as variáveis globais são ruins, e variáveis booleanas globais são ainda piores!
Enfim, esta é a forma como eu costumo fazer disparar um determinado método apenas uma vez:
Na minha primeira série de variáveis ...
private var myStatus:Boolean = false;
Então, dentro da função que é chamado muitas vezes ...
if (!myStatus) {
doMyFunction();
myStatus = true;
}
Parece bastante lógico para mim, mas é a coisa certa ?
ATUALIZAÇÃO : Bem, com base no que eu aprendi com as suas respostas, em vez de verificar uma variável booleana global, agora primeiro verificar se existe o nó XML (eu sou armazenar as imagens dentro de uma estrutura XML antes de qualquer escrito para o disco ocorre), e, se isso não acontecer, então eu acrescentar um novo nó com os base64 codificados dados de imagem. Eu ainda definir um sinalizador booleano para que mais tarde eu posso substituir a imagem em branco com dados de imagem editados usuário, se necessário. Funciona perfeitamente. Obrigado a todos por sua ajuda!
Eu agora também se sentir mais confortável sobre o uso esse sistema em particular (thread inseguro) em determinadas situações.