2011-03-01 17 views
6

¿Es una forma de comprobar si ya existe un detector de eventos para eliminarlo?flash as3 check event listener

stage.addEventListener(MouseEvent.CLICK, clickdownfunction); 

Básicamente, quiero quitar el oyente, pero a veces ya se ha eliminado, por lo que quiero para comprobar si existe y si lo hace, luego lo elimina.

¿Esto es posible?

Respuesta

8

no se puede verificar si una función específica está registrada como un oyente, pero puede verificar si un tipo está registrado. Esto se puede hacer con esto:

hasEventListener(type:String):Boolean 

Alternativamente, puede simplemente llamar removeEventListener, si no está registrado sólo va a ignorar la llamada.

Espero que ayude,

+0

tenemos que comprobar un evento spesific veces. eso no es genial – atilkan

3

Aquí está el código tiene que quitar el detector de eventos sólo si está activo:

if(stage.hasEventListener(MouseEvent.CLICK)) 
    stage.removeEventListener(MouseEvent.CLICK, clickdownfunction); 
1

También puede utilizar Fingers:

on(stage).click -= clickdownfunction; 
Cuestiones relacionadas