Desabilitar objetos interativos com enabled e mouseEnabled AS3

janeiro 12, 2009 · Nenhum comentário

Autor: Rodrigo Gonçalves

Flash CS3/CS4
Package: flash.display
Classe: public class InteractiveObject
Classe: public dynamic class MovieClip

Versão AS: ActionScript 3.0
Player: Flash Player 9 ou superior

Dificuldade: Básico.
Obs: Para um bom aproveitamento deste artigo é interessante ter lógica de programação, noções básicas para leitura de sintaxe ActionScript 3.0.

Fala galera, tranquilo!?

Um assunto bastante simples, mas que pode ser útil no dia a dia. Em alguns casos podemos precisar desativar o acesso a um determinado Botão, MC ou quaisquer objetos interativos no stage. Vamos ver rapidamente 2 propriedades: enabled e mouseEnabled.

Índice

1. Propriedade enabled;
2. Propriedade mouseEnabled;
3. Disferenças entre enabled e mouseEnabled.



Propriedade enabled

Podemos utilizar a propriedade enabled da classe MovieClip para “desabilitar” a interatividade de um objeto como eventos de Over, Down, Up frames em Botões ou MCs que tenha o mesmo comportamento de Botões.

Essa propriedade recebe valor do tipo Bollean (true ou false)
Por padrão ele fica definido como true, basta definir o valor como false para "desabilitar" seu Objeto.

Ex.:

btn.enabled = false;

Porém, o seu objeto visual ainda continua recebendo eventos de mouse como: mouseDown, mouseUp, keyDown e keyUp e ainda dispara a função referente a este evento. E você poderá ter alguns problema dependo da sua inteção, pois a função referente a este Botão/MC continuará disparando.

Ex.:

1
2
3
4
5
6
7
8
9
10
11
12
13
btn.enabled = false; //o botão está desativado
 
//adiciona ouvintes de eventos de Mouse para o botão
btn.addEventListener(MouseEvent.CLICK, onClick);
 
function onClick(e:MouseEvent):void{
	//verifica se o botão está ativado ou não;
    if(btn.enabled){
    	trace(  "Clicou! Botão ativado!");
    }else{
    	trace(  "Botão desativado!")
	}
}

Propriedade mouseEnabled

Caso precise desativar completamente o acesso de eventos de mouse em qualquer objeto interativo, utilize a propriedade mouseEnabled da classe InteractiveObject.


Essa propriedade recebe valor do tipo Bollean (true ou false).
Por padrão ele fica definido como true, basta defini-lo como false para desabilitar seu Objeto.
Você pode aplicar o mouseEnabled em qualquer objeto visual que seja interativo, como em caixa de textos dinâmicos, MCs, Componentes, etc.

Ex.:

meuObjeto.mouseEnabled = false;

Disferenças entre enabled e mouseEnabled

Resumidamente, a diferença que a propriedade enabled podemos considerar que desativa “visualmente” o acesso ao objeto como(mouseUp, mouseOver, mousedown, etc). Porém, ainda continua recebendo eventos de mouse e você pode ter algum problema dependo da sua intenção. E nem todos objetos visual e interativo existem acesso com essa propriedade, como por exemplo o TextField.
Já a propriedade mouseEnabled desativa totalmente o acesso a qualquer objeto interativo. Não recebendo quaisquer eventos de mouse sobre o mesmo.

Mais informações no help do Flash procurando pela propriedade enabled e mouseEnabled.

Abraço e até a próxima.

Rodrigo Gonçalves
Equipe AlvoWeb

Creative Commons License
O Conteúdo do Alvo Web Developers está licenciada sob uma Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License.

Categoria: ActionScript

0 respostas ↓

  • Não tem nenhum comentário ainda...seja o primeiro.

Faça um comentário

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word