BlogBlogs.Com.Br

sábado, 13 de dezembro de 2008

Um listener para todas instâncias governar.


Quando temos diversos elementos , com as mesmas funções podemos aplicar sobre eles um único EventListener ao invés de criar vários.

function AddListenerFunc():void {

for (var i=0; i< maxElements; i++) {
mcArr[i].buttonMode = true;
mcArr[i].addEventListener(MouseEvent.CLICK, mcEvent);}
}

function mcEvent(E:MouseEvent):void {
removeChild(MovieClip(E.currentTarget));
mcFunc(MovieClip(E.currentTarget));
}

No código acima temos a função AddListenerFunc, que aplica a propriedade buttonMode e o evento de mouse para todas as instâncias contidas dentro do Array mcArr.
Na função mcEvent podemos identificar qual instância é a responsável por ativar a mesma através de E.currentTarget.
Dentro da função temos dois exemplos. Em removeChild(MovieClip(E.currentTarget)), removemos o mc que recebeu o click. Note que removeChild precisa de um MovieClip como parâmetro, e por isso fazemos a conversão de tipos.
Em mcFunc(MovieClip(E.currentTarget)), chamamos uma função, passamos o mc que recebeu o click e isso mostra as possibilidades com apenas um listener.