Curso AS3

Entendendo Funções

O entendimento de funções é extremamente importante no Actionscript. Você já se viu copiando e colando partes do código, ou o reescrevendo. Graças às funções, podemos reutilizar blocos de códigos em qualquer parte do filme, desta forma, pode-se obter mais escrevendo menos.

A sintaxe de uma função é a seguinte:

function nome-da-função(parâmetro1:Tipo, parâmetro2:Tipo){
	//comandos;
};

A declaração da função é feita através da palavra-chave function, logo em seguida o nome da função, e entre os parênteses pode-se adicionar quantos parâmetros forem necessários, ou deixá-lo em branco, o uso de parâmetros é usado para chamar a função e executá-la com algumas diferenças, e por fim entre as chaves ficam os comandos.

A sintaxe abaixo é uma outra forma de se criar uma função. A única diferença está na forma em que o nome é atribuído a função.

nome-da-função = function (parâmetro1:Tipo, parâmetro2:Tipo){
	//comandos;
};

A função é chamada da seguinte maneira:

//sem parâmetros
nome-da-função();
 
//com parâmetros
nome-da-função(parâmetro1, parâmetro2);

Exemplos

Simples

function mensagem(nome:String){
	trace("Olá!");
}
mensagem();

Passando um parâmetro

function mensagem(nome:String){
	trace("Olá " + nome + "!");
}
mensagem("Erick");
mensagem("Lola");

Passando diversos parâmetros

function mensagem(nome:String, eu:String){
	trace("Olá " + nome + " !\nMe chamo" + eu);
}
mensagem("Erick", "João");
mensagem("João", "Erick");

Chamando uma função

Suponha que você tenha definido uma função de nome “somar” dentro de um movieClip instanciado de “mc1″, no stage principal, e quer chamá-lo na Timeline principal, para isto é necessário passar o caminho completo.

_root.mc1.somar();

Se o nome da função for passado através de variáveis, fica da seguinte maneira:

var varNomeFuncao:String = somar;
_root.mc1[varNomeFuncao]();

Podemos ainda definir a função como global, e desta forma é possível chamá-lo em qualquer Timeline e escopo sem a necessidade de utilizar um caminho a cada chamada.

_global.somar = function(){
	//comandos;
};
somar();

Variáveis em funções

Ao criar uma função, dentro desta função existe um escopo, e ao declarar uma função como local através da palavra-chave var, está variável estará disponível apenas dentro da função, ou seja, no escopo da função.

function somar():Void{
	var n1:Number = 2;
	var n2:Number = 3;
};
somar();
trace(n1 + n2); //retornará um erro
 
 
function somar():Void{
	var n1:Number = 2;
	var n2:Number = 3;
	trace(n1 + n2); //retornará 5
};
somar();
 
function somar():Void{
	n1 = 2;
	n2 = 3;
};
somar();
trace(n1 + n2); //retornará 5

É recomendado declarar as variáveis como locais, pois em grandes aplicativos, será mais difícil ocorrer um erro, como o de definir duas variáveis com o mesmo nome, sendo que cada uma terá seu escopo.

Trabalhando com retorno de dados na função chamada

Podemos também utilizar as próprias funções para retornarem resultados, a instrução return é usada para está finalidade.

O uso de return é exigido em função onde foi especificado um tipo de retorno, caso contrário o uso do return é opcional.

//retorna um valor booleano
function somar():Boolean{
	//comandos;
};
 
//retorna um valor numérico
function somar():Number{
	//comandos;
};

Exemplo

function verificarSecao(secao:String):Boolean{
	var retorno:Boolean;
	if(secao == "Flash") retorno = true;
	else retorno = false;
 
	return(retorno);
};
 
var secaoCorreta:Boolean = verificarSecao("Flash");
trace(secaoCorreta);
 
var secaoCorreta:Boolean = verificarSecao("Flex");
trace(secaoCorreta);

O operador Void indica que a função não retorna valor algum.

function nomeFuncao():Void{
	//comandos;
};

Global Functions

Após compreender melhor o funcionamento e de como criar suas próprias funções, ainda contamos com muitas das funções globais do Flash, como:

  • duplicateMovieClip()
  • getURL()
  • getTimer()
  • gotoAndStop()
  • loadMovie()
  • play()
  • etc.

13 Responses to “Entendendo Funções”

  1. huayna Says:

    muito legal
    =]

  2. Wolney Says:

    :o
    aprendi mais um pouquinho sobre funções
    obrigado

  3. samuel Says:

    ótimo ! :o

  4. Mateus Says:

    Gostaria de saber como passo por parametro um nome de um obj para tratar o obj.
    como por exemplo em javascript faco
    function teste(objeto){
    var obj = document.getElementById(objeto);
    obj.text = “Muda texto”;
    }

    e em actionscript no flex 2 como faço?

  5. Rubia Says:

    Eu tive q aprender td isso na marra, no desespero do dia-a-dia…
    Agora que vi esse artigo me lembrei de quanto sofri por não entender como a “função funcionava” exatamente…

    Mas é isso, é a vida de programador mesmo!!!
    Ótimo artigo!!!

  6. Fernando Paiva Says:

    Sensacional o post meu camarada! Agora é estudar mais por aqui hahaha
    abração!

  7. Kadu Nunes Says:

    Gostaria de saber como trabalhar A.S. em ações para um website em flash,
    trabalhar com ações como PrevFreme e NextFrame, if etc.
    Aguardo resposta. obrigado

  8. ohrlando Says:

    como criar uma função que retorne um valor (AS3)
    exemplo, se eu criar uma função mais ou menos assim:
    function (nome:String, sobreNome:String…….

    querendo que ela retorne nome + ” ” + sobreNome
    (um exemplo só)

    como faz isso, eu tentei fazer

    function nomeCompleto (nome:String,sobreNome:String):String{
    nomeCompleto=nome+” “+sobreNome;
    }

    Foi o que pensei, mas tá erradíssimo =’(
    plz help aew =)

  9. ohrlando Says:

    afff, juro que não li o tuto completo…
    e a resposta tava no fim, kkkkkkk

    ótimo tuto! nota:10,5.

  10. Erick Souza Says:

    Valeu Ohrlando, que bom que lhe ajudou. =)

  11. Danilo Celuch Says:

    Iˇ¦ll right away grab your rss feed as I can’t to find your email subscription hyperlink or e-newsletter service. Do you have any? Kindly let me understand in order that I could subscribe. Thanks.

  12. Ravens Jerseys Cheap Says:

    Could area might be very sensitive for almost all people today, my opinion is this : there has arrived at turn into a core or possibly general floorboards that individuals all of the will discover. I appreciate this a person put in important and additionally clever feedback there despite the fact. Appreciate it!

  13. Classic UGG boots Says:

    Bear in mind, ask for inside fascinating written content. Solution to use, and i also anticipation followers.

Leave a Reply