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;  

}

Foi útil?

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).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top