Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

italoborges

[Resolvido] Disparar eventos para classes que não se comunicam

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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:

public function Item() {
	  this.addEventListener(MouseEvent.MOUSE_DOWN, go) 
}
public function go(e:MouseEvent) {
	trace('go')
	dispatchEvent(new  Event("clicouItem", true))
}

 

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) 
}
public function ouvir(e:Event) {
	 trace('clicou em algum item')
 
}

 

testa ai pra ver, tenta tirar o "true" tb, você vai ver que não vai executar o evento

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.