ActionScript 3 Básico – Funções

Tutorial Actionscript 3

ACSfuncoes

/ Tutoriais

Quando estamos desenvolvendo um projeto, freqüentemente percebemos funcionalidades cujo uso se repete em vários lugares. Por exemplo, na criação de sites, em um e-commerce, você pode querer exibir o total do carrinho de compras do usuário em diferentes páginas ou diferentes lugares. No desenvolvimento de jogos para redes sociais, você pode precisar calcular o seno de um ângulo em diferentes partes do código do seu jogo.

Linguagens de programação possibilitam que agrupemos trechos de código em funções, podendo assim utilizar aquele mesmo trecho em diversos lugares, apenas invocando a função que definimos. As funções agrupam um conjunto de comandos que você define para realizar uma determinada tarefa.

Quando você define uma função você também pode definir parâmetros para ela. Parâmetros são valores que você pode enviar a função quando a invoca (chama). Isso permite que a função possua um comportamento customizado e retorne resultados específicos aos parâmetros que nós passamos.

O uso de funções oferece diversas vantagens:

  • Reduzem a quantidade de linhas de código.
  • Facilitam o entendimento do código.
  • Facilitam a manutenção, uma vez que caso seja necessária alguma alteração, precisamos fazê-la em apenas um lugar.
  • Favorecem uma melhor organização e documentação do projeto

A definição de funções em ActionScript 3 segue a seguinte sintaxe:

Observe a forma de definição. Primeiro devemos escolher um nome para a função, nome que utilizaremos quando desejarmos invocá-la. O nome deve ser simples e refletir bem o que a função faz.

Em seguinda, devemos definir os parâmetros que a função recebe. Se definirmos parâmetros, ao invocarmos essa função devemos obrigatoriamente fornecer um valor para cada parâmetro (depois veremos parâmetros opcionais, mas por enquanto tome isso como verdade). Assim, podemos por exemplo criar uma função que calcule o valor do fatorial de um número. Essa função, receberá como parâmetro o número a ter o fatorial calculado.

Por fim devemos fornecer o código ActionScript 3 da função. Ele será responsável por fazer o que desejamos que a função faça. No exemplo citado (cálculo de fatorial) deveríamos escrever um código que multiplicasse o número passado como parâmetro por todos os seus anteriores exceto zero.

Vejamos um exemplo bem simples, uma função que calcula o valor de um número elevado ao quadrado.

No tutorial anterior comentamos sobre o escopo de um código ActionScript 3. O conceito de escopo também se aplica a variáveis dentro de funções. Assim, observe no exemplo anterior que dentro da função de nome elevaAoQuadrado criamos uma variável chamada resultado. Tal variável só estará disponível dentro da função elevaAoQuadrado, ou seja, dentro do escopo onde ela foi declarada. Usando o exemplo anterior, caso desejemos acessar a variável resultado fora da função, por exemplo, adicionando a linha a seguir no final do nosso código

não obteremos êxito, pois o escopo dessa variável é restrito a função onde foi declarada e o flash acusará um erro. Variáveis declaradas dentro de funções são chamadas variáveis locais, indicando que só podem ser acessadas localmente (dentro da função onde foi declarada). O mesmo se aplica à variáveis declaradas dentro de estruturas condicionais ou laços de repetição, que veremos mais a frente.

Por outro lado, variáveis declaradas fora de funções podem ser acessadas dentro e fora de funções, e são chamadas variáveis globais.

Podemos reescrever o exemplo anterior de outra forma:

Este exemplo, além de ilustrar o conceito de variável global nos mostra que uma função não precisa necessariamente retornar um valor. O valor pode ser armazenado em uma variável global, acessada logo em seguida, ou simplesmente a função pode realizar operações sobre elementos do projeto e não retornar valor algum.

Infelizmente não existem regras precisas para determinar que tipo de abordagem utilizar em funções (variáveis globais ou locais). A orientação que dou é que você deve buscar a abordagem que necessite de menos variáveis globais.

No próximo tutorial introduziremos os métodos, que são como funções só que no contexto de objetos. Até lá.



Arivan Bastos

Analista de sistemas, desenvolvedor Web e de games. Possui domínio de PHP, SQL e ActionScript 3. Possui conhecimentos avançados em Starling Framework, Corona SDK e Yii Framework. Atua na Virtualize na criação de sites, desenvolvimento de jogos, desenvolvimento de aplicativos mobile e desenvolvimento de aplicativos para redes sociais.