Come disabilitare e riattivare gli eventi del mouse; buttonMode, mouse I bambini e l'abilitazione non funzionano

StackOverflow https://stackoverflow.com/questions/1431647

Domanda

Fondamentalmente la domanda potrebbe essere più probabilmente posta in modo più accurato, come posso semplicemente disabilitare un pulsante e quindi riattivarlo? Ho provato a impostare buttonMode su false, mouseChildren su false e abilitato su false. Niente funziona. Mi rendo conto che potrei semplicemente rimuovere gli ascoltatori dell'evento, ma sicuramente c'è un modo più elegante ed efficiente. Poiché la rimozione dell'evento, i listener mi costringerebbero a tenere traccia di quali funzioni appartengono a determinati stati dei pulsanti e dovrei aggiungerli e rimuoverli più e più volte, il che sembra goffo.

C'è un modo per impostare un flag che disabilita temporaneamente tutti gli EventListener che un oggetto potrebbe avere e quindi semplicemente riaccenderli? Avevo il malinteso che l'aggiunta di eventi rollOver ecc. A un MovieClip lo converte in teoria in un pulsante, in cui può essere facilmente disattivato con la proprietà abilitata. Inoltre, non riesco a utilizzare SimpleButton, poiché ho bisogno di maggiore flessibilità di quella che offre.

Ho creato una classe personalizzata che gestisce tutte queste funzionalità e rende la vita più semplice, ma mi chiedo se esiste un modo ufficiale pronto all'uso.

Di seguito è riportato un esempio isolato, che utilizza un MovieClip sul palco con un nome di istanza di iPoo, in cui gli eventi si attivano sempre indipendentemente da ciò che viene impostato quando si fa clic sul pulsante:

iPoo.addEventListener (MouseEvent.ROLL_OVER, pooRollOver);
iPoo.addEventListener (MouseEvent.ROLL_OUT, pooRollOut);
iPoo.addEventListener (MouseEvent.CLICK, pooClick);

funzione pooRollOver (_event: MouseEvent): void
{

iPoo.alpha = 0.5;  

}

funzione pooRollOut (_event: MouseEvent): void
{

iPoo.alpha = 1;  

}

funzione pooClick (_event: MouseEvent): void
{

trace("Poo");  

iPoo.enabled = false;  
iPoo.buttonMode = false;  
iPoo.mouseChildren = false;  

}

È stato utile?

Soluzione

Utilizza la proprietà mouseEnabled .

mc.mouseEnabled = false;

daivedocs:

  

Se abilitato Se abilitato è impostato su false, i fotogrammi Sopra, Giù e Su del clip filmato sono disabilitati. Il clip filmato continua a ricevere eventi (ad esempio mouseDown, mouseUp, keyDown e keyUp).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top