Como desativar e reativar MouseEvents; buttonMode, mouseChildren e permitir não funcionam
-
07-07-2019 - |
Pergunta
Basicamente, a questão poderia mais provavelmente será solicitado com mais precisão, como faço um botão simplesmente desativar e, em seguida, reativá-lo? Eu tentei configuração buttonMode como falsa, mouseChildren para falso e permitiu falsa. Nada funciona. Eu percebo que eu pode apenas remover os ouvintes de evento, mas certamente há uma maneira mais elegante e eficiente. Como remover os ouvintes de evento iria me obrigar a manter o controle de quais funções pertencem a certos estados de botão e tem que adicionar e removê-los uma e outra vez, o que parece desajeitado.
Existe uma maneira de definir um sinalizador que faz com que o desativa temporariamente quaisquer EventListeners um objeto possa ter, e em seguida, basta ligá-los novamente? Eu estava sob o equívoco de que a adição de eventos de capotamento, etc .. em um MovieClip converte em teoria a um botão, em que pode ser facilmente desligada com a propriedade habilitada. Além disso, eu não posso usar SimpleButton, como eu preciso de mais flexibilidade do que ele proporciona.
Eu criei uma classe personalizada que lida com toda essa funcionalidade, e torna a vida mais simples, mas eu estou querendo saber se lá como uma forma oficial out-of-the-box.
A seguir é um exemplo isolado, que usa um MovieClip no palco com um nome de instância de iPoo, onde os eventos dispara sempre, independentemente do que é definido quando você clica no botão:
iPoo.addEventListener (MouseEvent.ROLL_OVER, pooRollOver);
iPoo.addEventListener (MouseEvent.ROLL_OUT, pooRollOut);
iPoo.addEventListener (MouseEvent.CLICK, pooClick);
função pooRollOver (_event: MouseEvent): void
{
iPoo.alpha = 0.5;
}
função pooRollOut (_event: MouseEvent): void
{
iPoo.alpha = 1;
}
função pooClick (_event: MouseEvent): void
{
trace("Poo");
iPoo.enabled = false;
iPoo.buttonMode = false;
iPoo.mouseChildren = false;
}
Solução
Use a mouseEnabled propriedade.
mc.mouseEnabled = false;
a partir livedocs:
Se habilitado Se estiver habilitado conjunto para false, Over, Down e Up quadros do clipe de filme está desativado. O clipe de filme continua a receber eventos (por exemplo, mouseDown, mouseUp, keyDown e keyUp).