Os programadores JavaScript não terão grandes dificuldades para se adaptarem à programação ActionScript. São grandes as semelhanças entre elas devido ao uso do padrão ECMAScript (veja no link sobre o padrão Ecma-262). Aliás, a adaptação do padrão Ecma-262 pelo ActionScript é mais próxima da especificação do que o JavaScript.

Sobre a sintaxe

editar

Em ActionScript, é recomendável você separar cada linha do código por um ponto-e-vírgula (;). Não é obrigatório o seu uso, mas no entanto é extremamente recomendável para separar comandos. Além do mais, diferentemente da versão 2.0, o ActionScript 3.0 não permite tipagem fraca: todas os tipos de variáveis devem ser declaradas (tipagem forte), com o intuito de gerenciar melhor a memória. Exemplo:

// Se 'nome' abarcará um tipo String, isso deve ser discriminado
var nome:String = new String();

// Modo errado
var nome = "Fulano";

A versão 3 também traz dois novos tipos primitivos: int e uint, que economizam memória se comparado ao tipo Number (são úteis em loops, etc.). A lista inteira de tipos vem com:

Tipo Descrição Valores
Boolean Booleano true, false
int número de 32 bits 2.147.483.647 até -2.147.483.648
Null nulo null
Number Número de dupla precisão (64 bits) 1.79e+308 até 5e-324
String Texto string
uint número inteiro sem sinal 0 a 4.294.967.295
void vazio utilizado em funções que não devem retornar nada

A nova versão também pôs abaixo várias funções referentes a eventos, como onRelease, entre outras. Propriedades que usavam underscore ( _ ) como _x e _width, perderam esse caractere para serem representadas apenas como x e width. O modo de se escrever as funções em ActionScript 3.0 também difere da versão 2.0 e do JavaScript. Toda função deve ter um valor com que irá retornar, mesmo que seja um valor vazio (void). Por exemplo:

// Modo errado
function Adeus(){
   trace("Adeus!");
}

// Modo correto, no caso de não retornar nenhum valor, por exemplo, em clique de mouse...
function Adeus(evt:MouseEvent):void {
   trace("Adeus!");
}

// Modo correto, quando queremos que a função retorne uma String, por exemplo...
function exibeNome(nome:String):String {
   var frase:String = new String();
   frase = "Seu nome é " + nome;
   return frase;
}

Todos os comandos de uma função, cláusula condicinal, loops, classes e pacotes devem estar inseridos dentro de chaves ({}). A indentação não é obrigatória, mas é extremamente recomendável, assim como na maioria das linguagens. Variáveis e funções não devem ter nomes que iniciam com números, nem os caracteres "_" ou "$", não existir uma variável ou função com esse nome já declarada ou ter o nome de uma função/variável reservada do AS3 (como true, private, entre outras).

Comentários

editar

Os comentários são úteis tanto para inserir lembretes e informações sobre o código como para tirar linhas de código que numa compilação não sejam executados (útil para testes). Há duas maneiras de comentar em ActionScript:

// Comentário apenas uma linha

/* Comentário que
ocupa várias linhas.
Aqui é o fim */

Fim de _global

editar

Na nova versão do ActionScript a variável global _global foi abandonada. Para emular o uso de variáveis globais você deve criar um objeto Singleton.