Ação nos Botões com o Action Script 3, e agora…

Postado por Andreo Costa | Categoria: Artigos | Postado em 29-11-2009

3

Para quem está vendo por agora as mudanças no AS3 para o AS2 do Adobe Flash, vai precisar conhecer as novidades no que diz respeito às ações dos botões.

Não existe mais o onPress, onRelease, onRollOver, onRollOut, etc. Todos os eventos relacionados a Mouse está na Classe MouseEvent.

 

Mas a maior mudança foi a não inclusão de um evento para substituir o onReleaseOutside, felizmente existe uma solução para esse problema. Criaremos um MovieClip com instancia de botao, colocaremos a seguinte ação:

/* Adicionamos o envento relativo ao onPress no botao */
botao.addEventListener(MouseEvent.MOUSE_DOWN, btPress);
/* Função relativo ao onPress */
function btPress(event:MouseEvent):void {
   /* Adicionamos o evento relativo ao onRelease no stage */
   stage.addEventListener(MouseEvent.MOUSE_UP, btRelease);
   trace("onPress");
}
/* Função relativa ao onRelease */
function btRelease(event:MouseEvent):void {
   /* Verifica se o alvo é realmente o botão */
   if (event.target.name == "botao") {
      /* Sua ação relativa ao evento onRelease */
      /* Remove o Listener */
      stage.removeEventListener(MouseEvent.MOUSE_UP, btRelease);
      trace("onRelease");
   } else {
      /* Sua ação relativa ao evento onReleaseOutside */
      /* Remove o Listener */
      stage.removeEventListener(MouseEvent.MOUSE_UP, btRelease);
      trace("onReleaseOutside");
   }
}

Deixa eu explicar o código. Primeiro adicionamos um Listener ao nosso botão criado. O listener vai ser acionado quando clicarmos com o botão esquerdo do Mouse. Ao clicar, a função btPress é acionada.

Na função btPress, adiciono um outro Listener, dessa vez em nosso palco (stage). O listener vai ser acionado quando soltarmos o botão esquerdo do Mouse. Ao soltar, a função btRelease é acionada.

Na função btRelease, verificamos se o alvo (target) é o nosso botão, se for, removemos o listener do palco para que não fique sendo acionado quando não deve e usamos nossa ação referente ao onRelease. Se o alvo não for nosso botão, removemos o Listener do palco e usamos nossa ação referente ao onReleaseOutside.

Dentro da função que você escolher, coloque o código de link:

   var link:URLRequest = new URLRequest( “http://www.eternia.com.br” );
   navigateToURL( link );

Assim, você insere o link desejado.