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.




September 5th, 2006 at 13:44
muito legal
=]
September 27th, 2006 at 8:50
aprendi mais um pouquinho sobre funções
obrigado
November 18th, 2006 at 18:15
ótimo !
March 29th, 2007 at 21:30
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?
June 26th, 2007 at 11:44
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!!!
October 7th, 2007 at 10:37
Sensacional o post meu camarada! Agora é estudar mais por aqui hahaha
abração!
April 7th, 2009 at 10:18
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
April 8th, 2010 at 15:36
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 =)
April 8th, 2010 at 15:38
afff, juro que não li o tuto completo…
e a resposta tava no fim, kkkkkkk
ótimo tuto! nota:10,5.
April 13th, 2010 at 12:40
Valeu Ohrlando, que bom que lhe ajudou. =)
July 1st, 2011 at 23:44
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.
December 14th, 2011 at 8:47
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!
December 18th, 2011 at 5:43
Bear in mind, ask for inside fascinating written content. Solution to use, and i also anticipation followers.