Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu de novo hehehe;
Tenho o seguinte "problema" que não sei como resolver.
Tenho 3 classes:
News
Call
Item
News chama a classe Call, Call chama a classe Item, e dentro de Item tem um listener de MouseEvent.CLICK.
O que eu gostaria de fazer é, quando a classe Item disparar um evento de Click, a classe News recebe esse disparo, sem ter que passar pela Call.
É possível?
Abrs
desculpem a pergunta, mas ainda não entendo qual a função do dispatchEvent.
please, poderiam me explicar??
Então Lino, o dispacthEvent, como o próprio nome já diz, serve para disparar um evento.
Exemplo:
seubotão.addEventListener(MouseEvent.CLICK, onClick);
function onClick (e:MouseEvent):void {
trace("disparou");
}
Caso você quiser disparar este evento sem ter que clicar no botão, você usaria:
seubotão.dispatchEvent(new Event(MouseEvent.CLICK));
É um exemplo básico para você ver a utilidade dele.
Eder, fiz o teste aqui e funcionou!
Agora vou tentar criar um CustomEvent para poder passar variáveis.
Valeu pela ajuda!
Essa opção do bubbles facilita demais essa comunicação entre classes.
Abrs.
existe no AS3 um esquema chamado "bubbles", na hora que você vai instanciar um evento, você pode seta-lo como true,
ai ele vai se "dispersar" por varios objeto (na verdade só os objetos que ele esta dentro)
na classe Item:
eu estou disparando um evento novo, o "clicouItem" repare o "true" ali do lado, ele serve para dizer que o evento vai ser ouvido por quem esta "a cima" dele
no seu caso quem vai ouvir é o "Call" depois o "News", mas para eles fazerem algo, tem que ter o listener:
public function News() {
this.addEventListener("clicouItem", ouvir)
}
testa ai pra ver, tenta tirar o "true" tb, você vai ver que não vai executar o evento
[]´s