Tutorial Action Script 3 – 003


Em continuação do tutorial. (001002).

 

2.7. Arrays

 

Enquanto as variáveis ”normais” apenas suportam um tipo de dados e um valor, um array consegue suportar vários valores. Num exemplo prático, suponhamos que necessitamos de guardar 50 nomes de pessoas, não vamos declarar 50 variáveis visto que o processamento do action script se tornaria mais lento, além do nosso código ficar enorme.

 

Como foi dito, podemos guardar num array vários valores, fazendo a declaração da seguinte forma.

var meuArray1:Array = [1, 2, 3];
var meuArray2:Array = new Array();

Ambos os arrays podem ser facilmente modificados, vejamos:

- Como adicionar um elemento ao nosso array:

meuArray2.push(1);

E o valor 1 é adicionado ao array;

-Como remover o ultimo item ao array:

meuArray2.pop();

-Como buscar o valor de determinada posição dentro do array:

var meuArray3:Array = [''1'','' 2'','' 3''];
 
trace(meuArray[0]); //irá retornar a string ''1''

Existem muitas mais operações relativas a arrays, como os percorrer, comparar, eliminar um item em certa posição, procurar, etc… Os arrays têm a possibilidade de serem também arrays matriciais ou multidimensionais e receber varias variáveis em varias posições, bem como receber outro array em cada posição que falaremos mais à frente… para já vamos passar aos Objectos.

 

2.8. Objectos (Object)

 

Depois de alguma experiência com Actioin Script, facilmente se apercebem que muitas propriedades de Objectos, por exemplo um MovieClip, são acedidas e disponibilizadas propriedades através de um acesso rápido, como por exemplo:

var meuMovieClip:MovieClip;
meuMovieClip.x=posição_eixo_xx;
meuMovieClip.y=posição_eixo_yy;
meuMovieClip.width=tamanho_comprimento;

e muitas mais propriedades, isto se chama um objecto e desde já ficamos a saber que grande parte de componentes actionScript são derivados de Objectos.

 

Como o AS3 é bastante versátil, permite-nos também criar o nosso objecto personalizado e definir-mos as caracteristicas que quisermos… vejamos:

var objectoTeste:Object = new Object();
objectoTeste.param1=5;
objectoTeste.param2=false;
objectoTeste.param3=null;

Como podemos ver pelo exemplo, criámos as nossas próprias propriedades do nosso objecto sem dificuldade nenhuma, e para lhes aceder é tão simples como:

var zed:Boolean;
zed=objectoTeste.param2;
trace("o valor do zed é "+zed);

Alem de servir para criarmos os nossos proprios objectos, pode servir também para um rápido acesso a um objecto com muitas caracteristicas, e principalmente torna-se muito util para enviar um conjunto de dados para uma função em vez de utilizarmos um array, como no exemplo que se segue usando o objecto em cima:

function mostraEstadoObjecto(obj:Object):void {
    trace(obj.param1);
    trace(obj.param2);
    trace(obj.param3);
}
mostraEstadoObjecto(objectoTeste);

Serão então apresentados os valores das devidas propriedades do nosso objectoTeste; Notem que o obj recebido na função passa a ser considerado como o nosso objectoTeste e por isso com as mesmas propriedades.

 

2.9. Funções (function)

 

As funções são uma parte indispensável para os programadores em geral, e no AS3 são também uma parte crucial. Sem funções, o código seria executado conforme indicado anteriormente; sequencial de cima para baixo e da esquerda para a direita, com as funções, o código dentro delas apenas é executado quando elas são chamadas, e apenas indexadas pelo runtime.

As funções tornam o nosso código mais limpo, evitando que sejam executadas instruções e processamentos sem necessidade nessa altura. Para criar uma função, temos alguns passos simples a seguir, principalmente porque aqui reside uma grande diferença do AS2 que é a necessidade de declarar o seu tipo, retorno e possíveis argumentos.

Temos como exemplo a seguinte função simples:

private function mostraMsg(){
    trace("olá");
}

Que pare ser executada deve ser chamada com o comendo a seguir:

mostraMsg();

Esta função em si não está bem declarada, mesmo não devolvendo nada deve-se indicar ao compilador que ela não devolve mesmo nada, ficaria então assim:

private function mostraMsg():void {
    trace("olá");
}

As funções devem também ser indicadas com o tipo de função que é, neste caso ou private ou public sendo que a grande diferença entre elas é que conforme o nome diz, uma função privada, que não pode ser acedida fora do seu contexto ou do seu componente o que pelo contrario a função public permite o seu acesso fora desse contexto / componente, estando disponível em toda a aplicação.

No caso desta função, e de muitas outras, por uma questão de reutilização de código podemos simplificar as coisas e passar um ou mais parâmetros para a função. Isto torna-se muito util no caso de querer-mos fazer uma operação com um valor diferente, usando a função em cima e o que já foi explicado poderíamos fazer a função:

private function mostraMsg(msg:String):void {
    trace(msg);
}
//e chama-la como:
mostraMsg("olá");

Esta operação apenas fará o mesmo que a anterior, mas de uma maneira reutilizável… podemos ainda tomar como por exemplo o que já foi dito em cima, para criarmos a nossa primeira função conjugando quase tudo o que foi dito em cima:

var dados:Array = ["olá","mundo","sou","um","teste"];
 
private function mostraMsg(msg:String):void {
    trace(msg);
}
 
private function teste ():void {
    
    for (var i:Number = 0; i < dados.length; i++) {
        mostraMsg(dados[i]);
    }
}
 
teste();

Ao executar-mos esta função teste(), será executado um ciclo de i=o até i=4 (o dados.length retorna o tamanho do array) e em cada posição será chamada a função mostraMsg com a string da posição do array, ou seja, a função mostraMsg será chamada 5 vezes:

mostraMsg("olá");

mostraMsg("mundo");

mostraMsg("sou");

mostraMsg("um");

mostraMsg("teste");

o que produzirá um trace a estes cinco elementos do array.

 

As funções em si podem devolver dados… no caso em cima não devolvemos nada (:void), mas podemos devolver praticamente qualquer tipo de dados, ora vejamos:

private function percentagem(num:Number):Number {
    return ((num/100));
}

Neste caso ao chamar-mos a função percentagem, ser-nos-à devolvido o valor percentual do número que indicámos:

var perc:Number;
 
perc=percentagem(25);
 
/* ao colocarmos a variavel perc=percentagem(25), a variável será igual
ao valor devolvido pela funçao, e como ao chamar a funcao colocámos
o numero 25, a variavel perc ficara com o vamor de 0.25, sendo que a operação
dentro da função será (25/100) = 0,25. */

Como podem reparar trabalhar com funções não é muito dificil, temos apenas que ter em conta que quanto mais simples, limpas e directas forem, mais fácil será detectar erros e reutiliza-las. Repararam também que usei os caracteres "/*" para definir um bloco de comentário, estes caracteres são iguais como aos conhecidos por muitas outras linguagens de programação como Javascript, VisualBasic, php, etc..

Um "//" define uma linha de comentário

Um "/*" define um bloco de comentário, pelo que devemos usar o "*/" para dar como terminado esse bloco.

Um /** para definir um bloco de comentário (FLEX), consiso, rápido e importante, já que é assinalado a outra cor (No FLEX, azul marinho) para mais facil identificação, devendo também termina-lo com **/.

 

Por agora é tudo…

Abraço.

ccommons     

http://creativecommons.org/licenses/by-nc-nd/3.0/deed.pt

Deixe um comentário ou um Trackback
   

9 Comentários

  1. June 5, 2008 às 8:55 pm | Permalink

    Ae mario precisando de ajuda, é soh fala

  2. Felipe
    September 22, 2008 às 5:01 pm | Permalink

    você é o cara… estou adorando aprender Action Script 3 com seus tutoriais… são super simples e objetivos.

    Não é complicado como o help do flash CS3 que mata agonizando os iniciantes sufocando em dúvidas.

    MUITO OBRIGADO POR VOCÊ EXISTIR…

  3. September 23, 2008 às 7:34 pm | Permalink

    Oupa Felipe, ainda bem que os tutoriais estão ajudando… já têm aí até ao n.11 :)

    Está faltando é tempo pra continuar…

    Abraço.

  4. herbert Amaro
    June 22, 2009 às 2:38 pm | Permalink

    cara vc eh cara!muito facil de aprender to aprendendo msm com esse tutorial}!

  5. October 29, 2009 às 12:50 pm | Permalink

    E X E L E N T E – E X E L E N T E – E X E L E N T E – E X E L E N T E
    continua por favor!
    É a gota dágua que me faltava..

    Parabéns

  6. Pedro
    November 5, 2009 às 10:05 pm | Permalink

    Kra vlew mesm muito show seu tuto

  7. November 17, 2009 às 10:39 pm | Permalink

    Bixo, massa a sua colocação a respeito do Arra(). Tem uma parte que vc fala em romover um item de um array.

    Estou com um projeto e necessito remover uma posição do array caso essa esteja vazia. Alguma solução, não sei como utilizar o splice().

    grato.

  8. Rafa
    March 3, 2010 às 3:48 pm | Permalink

    conhece o mário?

  9. Murilo Pan
    March 11, 2010 às 3:23 pm | Permalink

    HEy Mario, ta excelente meu, só peca pela falta de um link para navegar entre os tutoriais anteriores e posteriores…

2 Trackbacks

  1. [...] Free e-book. Livro Pratica Action Script 3 Gratuito » Tutorial Action Script 3 – 004 » Tutorial Action Script 3 – 003 » ok vou verificar…» Humm.. fui ver por curiosidade e dá um e…» Boas [...]

  2. [...] on Junho 7, 2008 – 9:30 am Em continuação com o tutorial ( 001 – 002 – 003 – 004 [...]

Deixe um comentário

O seu email nunca será publicado ou partilhado. Campos obrigatórios estão marcados com um *

*
*

Spam Protection by WP-SpamFree