Variáveis
O que são variáveis?
Variáveis são espaços na memória, utilizados para armazenar dados que serão utilizados durante a execução do programa. O código a seguir mostra a aparência de uma variável:
var meuNome:String = "Erick";
Porque Variáveis?
O recipiente, representado por um nome (meuNome), é sempre o mesmo em todo o script, mas o seu valor (Erick) pode ser alterado quando desejarmos, por isto Variáveis.
Pode-se necessitar em alterar constantemente os valores de variáveis, como por exemplo, em um placar de jogos em Flash, a variável responsável por armazenar os pontos são alteradas durante todo o jogo. Quando se interage com o usuário através de um SWF, as variáveis são fundamentais.
Tipo de Dados
Os tipos de dados mais comuns que podem ser armazenados em uma variável são um URL (string), nome do usuário (string), quantas vezes o usuários clicou em determinado botão (number), o resultado de uma operação matemática (number) ou se o usuário clicou em um determinado botão (boolean).
Os valores atribuidos a uma variável, podem-se constituir de um série de caracteres, números, arrays, objetos, XML, datas ou até mesmo classes personalizadas por você.
Utiliza-se a palavra var para declarar uma variável. Quando declarada uma variável, também atribuimos um tipo de dados a ela. Pode-se também definir um valor, desde que o mesmo corresponda com o tipo de dados da variável.
No exemplo a seguir foi declarado uma variável, meuNome, o tipo de dados é string, e o valor é Erick, observe:
var meuNome:String = "Erick";
Para exibir o valor de uma variável, para testes, utilize o método trace() que retornará o valor na janel Output (saída). Por exemplo, trace(meuNome); retornará o valor da variável meuNome.
Atribuição de nomes as variáveis
Embora as variáveis, possam ter praticamente qualquer nome, algumas regras devem ser seguidas:
- o primeiro caractere do nome de uma variável deve ser uma letra, underline (_) ou um cifrão ($). Os próximos caracteres podem ser uma letra, número, um sublinhado ou um cifrão.
- O nome de uma variável não pode ser uma palavra chave e nem uma literal do Actionscript, como true, false, null ou undefined.
- Os nomes de variáveis não devem conter espaços.
- O Actionscript 2.0 é case-sensitive, ou seja, ele diferencia maiúsculas de minúsculas, portanto “meuNome” é diferente de “meunome“.
Algumas dicas:
- De nomes as suas variáveis que façam algum sentido. Por exemplo, se a variável for armazenar o nome do visitante, então utilize nomeVisitante ou algo semelhante para nomear a variável.
- Como não podemos utilizar espaços em nomes de variáveis, utilize o underline para separar as palavras, ou melhor, a primeira letra da primeira palavra minúscula e a primeira letra das seguintes palavras em maiúsculas, por exemplo, “nomeDaVariavel“.
Tipos de Dados mais comuns
Citarei os três tipos de dados mais comuns, Number, String e Boolean.
Number
Contém apenas valores numéricos.
var minhaIdade:Number = 18; var dobroIdade:Number = 18 * 2; //ou melhor var dobroIdade:Number = minhaIdade * 2;
String (literal)
O valor é necessáriamente definido entre aspas, pode conter letras, números e sinais de pontuação.
Apesar de “10″ ser um valor numérico, quando armazendo em uma variável de valor string, será armazenado como uma string.
var meuNome:String = "Erick"; var minhaIdade:String = "18"; trace ("Hello World! \nEu me chamo " + meuNome + ".\nTudo Bem?"); //concatenamos a frase "Hello World! Eu me chamo" a variável "meuNome", //e em seguida concatenamos a frase ". Tudo Bem?" //O "\n" é interpretado como quebra de linha. Ele é equivalente ao do html.
Boolean
Este possui apenas dois valores: true (verdadeiro) ou false (falso). Um variável Boolean declarada, mas sem valor, tem como padrão o valor false.
var masculino:Boolean = true; var feminino:Boolean = false;
Para que você possa entender melhor a diferença entre os três tipos de variáveis citadas, saiba que variáveis number podem ser somadas, strings são concatenadas e booleans são comparadas.
//string var suaIdade:String = "50"; var minhaIdade:String = "18"; var somaIdades:String = suaIdade + minhaIdade; //o resultado é 5018, as strings foram concatenadas. //Number var suaIdade:Number = 50; var minhaIdade:Number = 18; var somaIdades:Number = suaIdade + minhaIdade; //o resultado é 68. //Boolean, este possui apenas dois valores: true (verdadeiro) ou false (falso). var erickForte:Boolean = true; //um exemplo utilizando condições. //se a variável erickForte for verdadeira // é executado o conteúdo entre as chaves. if (erickForte){ trace("O Erick é forte!"); } //caso contrário //o conteúdo desta chave é executado. else { trace("O Erick é fraco!"); }
Operadores
Gerais
- ( ) Agrupar
Aritméticos
- + Soma valores numéricos e concatena (une) strings.
- ++ Incremento (soma 1)
- - Subtração
- -– Decremento (subtrai 1)
- * Multiplicação
- / Divisão
Comparativos
- = Atribuir
- == Igual a
- != Diferente de
- < Menor que
- > Maior que
- <= Menor ou igual a
- >= Maior ou igual a
- && e
- || e/ou
Enviando variáveis externamente
Pelo endereço do filme contido entre as tags
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100" height="100" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><embed type="application/x-shockwave-flash" width="100" height="100"></embed></object>
Após o endereço do filme, basta adicionar a variável desta forma: “animacao.swf?nomeDaVariavel=Valor”, no exemplo abaixo foi passado a variável “saudacao” com o valor “Hello”.
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="animacao.swf?saudacao=Hello" /><embed type="application/x-shockwave-flash" width="550" height="400" src="animacao.swf?saudacao=Hello"></embed></object>
Pode-se acessá-la como se estive a declarado dentro do arquivo de filme.
Para efeito de testes, crie uma caixa de texto dinâmica para receber o valor da variável. Em Var no Inspetor de Propriedades da caixa de texto, escreva o nome da variável, neste exemplo “saudacao”.
Para testar o filme, abra-o através da página Html, onde foi adicionado a variável junto ao endereço do filme, contido entre as tags:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100" height="100" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><embed type="application/x-shockwave-flash" width="100" height="100"></embed></object>
Praticando - Exemplos de Uso
Suponha que o topo de um site necessite de uma imagem específica para cada seção do site, e que o mesmo é em Flash.
Podemos efetuar a alteração da imagem, enviando a variável pela URL do filme, desta forma utilizaremos o mesmo arquivo para todas as seções.
Salve estas três imagens abaixo. As usaremos neste exercício.



1- Abra um novo arquivo, com as dimensões de 450×80px.
2- Insira no primeiro frame (F9) a seguinte action:
//cria um movieclip vazio na Timelime Principal, o instância de "minhaImagem", com a profundidade 10. //A profundidade funciona como níveis ou camadas, o movieclip que possuir um valor maior, sobreporá os de valores inferiores. _root.createEmptyMovieClip("minhaImagem", 10); minhaImagem._x = 0; //posição do movieclip na horizontal minhaImagem._y = 0; //posição do movieclip na vertical //carrega a imagem no movieclip "minhaImagem", criado dinâmicamente acima. loadMovie(imagem + ".jpg", minhaImagem); //"imagem" é a váriável que passaremos externamente, //e em seguidas foi unido (concatenado) o valor da váriavel com com extensão ".jpg", //se você preferir passar a extensão junto a váriavel, //deixe apenas loadMovie(imagem, minhaImagem);
3- Salve o arquivo como “flash.swf” na mesma pasta onde foram salvas as três imagens, e no Html, adicione a variável, logo após o endereço do filme, veja:
"flash.swf?imagem=ipod"
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="450" height="80" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="flash.swf?imagem=ipod" /><embed type="application/x-shockwave-flash" width="450" height="80" src="flash.swf?imagem=ipod"></embed></object>
4- O Flash buscará uma imagem na mesma pasta do SWF com o nome da variável passada no endereço do filme no Html e a carregará no Flash.
5- Experimente trocar o valor da variável “imagem” de “ipod” por “animatrix”.
6- Mas e se nenhum valor for enviado para a variável? O filme ficará em branco?
Sim! Mas pode-se criar um condição, que no caso de não se atribuir um valor a variável “imagem”, uma imagem padrão seja carregada, vejamos:
//cria um movieclip vazio na Timelime Principal, o instância de "minhaImagem", com a profundidade 10. //A profundidade funciona como níveis ou camadas, o movieclip que possuir um valor maior, sobreporá os de valores inferiores. _root.createEmptyMovieClip("minhaImagem", 10); minhaImagem._x = 0; //posição do movieclip na horizontal minhaImagem._y = 0; //posição do movieclip na vertical if (imagem == null) { //se não houver valor algum atribuido a variável "imagem" //a imagem "default.jpg" é carregada. loadMovie("default.jpg", minhaImagem); }else { //caso contrário nossa imagem é carregada. loadMovie(imagem + ".jpg", minhaImagem); }
7- Para testar apague a variável que adicionamos no Html.
Antes
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="450" height="80" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="flash.swf?imagem=ipod" /><embed type="application/x-shockwave-flash" width="450" height="80" src="flash.swf?imagem=ipod"></embed></object>
Depois
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="450" height="80" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="flash.swf" /><embed type="application/x-shockwave-flash" width="450" height="80" src="flash.swf"></embed></object>

August 30th, 2006 at 22:18
por favor pode me esplicar como armazenar numeros separados numa caixina imput text ex: 1 4 6 8 8 assim sucessivamente..
agradeceria se me mandace uma resposta esplicando
September 2nd, 2006 at 8:50
Mateus, não compriendi o que você quer, seria isto:
instanciaDoTextfield.text = "1 4 6 8";Uma forma automátizada seria utilizando “Estruturas de Repetição“:
for(var i:Number = 0; i <= 20; i += 2) instanciaDoTextfield.text += " " + i;September 15th, 2006 at 13:29
Ola estou com um problema que é o seguinte, tenho um mc com integração ao php+mysql e precisava fazer o segunte:
Dentro do action script esta assim:
var clienteID:String = "1";objRecebe.load("http://localhost/flash1/representantes_flash.php?ID="trace(clienteID)"&UF=Santa Catarina");
preciso puxar o valor da variavel ali no endereço da url tem como?
Obrigado.
October 22nd, 2006 at 17:59
var clienteID:String = "1";objRecebe.load("http://localhost/flash1/representantes_flash.php?ID=" + clienteID + "&UF=Santa Catarina");
October 24th, 2006 at 12:40
como faço para colocar uma quebra de linha nesse action…
tentei tentei…
mas não deu =/
text = "Meu nome é Cassio, conhecido como Cassito";
i = 1;
max = length(text);
kerning = "10";
size = "10";
setProperty("char", _visible, "0");
duplicateMovieClip("char", "char" add i, i);
set("/char" add i add "/letter:char", substring(text, i, 1));
setProperty("/char" add i, _x, 100+Number(i*kerning));
setProperty("/char" add i, _xscale, 10*size);
setProperty("/char" add i, _yscale, 10*size);
i = Number(i)+1;
if (Number(i)>Number(max)) {
stop();
} else {
gotoAndPlay(3);
}
muito obrigado
October 24th, 2006 at 20:43
Oi Cassio,
Segue o exemplo abaixo.
texto = "Meu nome é Cassio,\n conhecido como Cassito";
trace(texto);
//ou
texto = "Meu nome é Cassio,<br /> conhecido como Cassito";
this.createTextField('caixaTexto', this.getNextHighestDepth(), 0, 0, 100, 10);
this.caixaTexto.autoSize = true;
this.caixaTexto.multiline = true;
this.caixaTexto.html = true;
this.caixaTexto.htmlText = texto;
November 1st, 2006 at 3:33
Olá…
TENHO UMA DÚVIDA CRUEL
Funcionaria se caso eu usasse uma página “php” como variável, por exemplo:
file1 = “index2.php”;
file2 = “index3.php”;
e assim por diante. Daria certo com esse código ?
Pq estou tentando fazer mas aparece o erro - ‘]’ or ‘,’ expected
file1= “index2.php”;
se puder me ajudar
valeu cara ate mais… :nerd:
November 1st, 2006 at 22:05
Kanitar, é possível sim, você armazena o nome como uma string (texto). O seu código está correto, o erro deve estar em outra parte do código.
Se quiser testar, rode o script abaixo em um novo arquivo.
file2 = "index3.php";trace(file2);
May 24th, 2007 at 13:55
whzvu
July 16th, 2007 at 22:30
Olá
Amigos
Minha duvida é, como faço para mover/transportar o valor de uma variavel dentro de mais de 1 MC. EX:
McRaiz valor Variavel=0;
McConteudo valor Variavel para McRaiz e/ou McBox
McBox Valor Variavel de McConteudo e/ou McRaiz.
alguem pode me ajudar.
agradeco desde já.
Gramp.
September 26th, 2007 at 10:46
Olá Pessoal!
No Flash MX Professional 2004 tem alguma outra diferença para carregar uma imagem do banco de dados.
Pois ja pesquisei e fiz varios testes e ate hoje nao consegui solucionar o problema.
loadMovie(”imagemflash.php?id=19″, maquinas);
no .php ele busca a imagem funciona certo.
Maquinas é o local aonde deve aparecer a imagem.
Ocorre o seguinte, quando clico no botão aparece a imagem, depois clico de novo nao aparece, depois clica nao aparece, depois clica aparece…ocorre com todos os botões, só qe ele nao segue uma logica…praticamente aparece a imagem quando quer…(ocorre com todos os botões)
Acredito que o erro seja no flash, mas nao encontro o tal erro…
Por favor, peço para alguem me dar uma dica!
Aguardo retorno
Muito obrigada
Caciara
e-mail:caciara.rosa@ibest.com.br
MSN: c_in_blue@hotmail.com
July 27th, 2008 at 21:54
virtual free casino casino virtual gambling
December 14th, 2008 at 21:32
eu estou aprendendo ainda o flash e fiz um jogo da memoria gostaria de saber qual codigo eu uso para mover as cartas???