Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Guijapa

variável com var ou sem!?

Recommended Posts

nenhuma <_< no action script 2 é apenas uma boa pratica você declarar as variaveis antes de usa-lasmas caso seja dentro de uma classe é obrigatórioainda bem que no AS3 isso não existe mais :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

É... na verdade rola uma diferença sim. Sem o var a sua variável fica disponivel para toda a timeline onde ela voi declarada, inclusive dentro de funções etc. A variável com var expira logo assim que uma função termina, é bom que economiza memória e o processamento é mais rápido. Saca só:

 

frase = "eu sou a frase de fora";function teste() {	var frase = "eu sou a frase de dentro";	trace(frase);}teste();trace(frase);
Mesmo usando o mesmo nome para as duas variáveis você tem resultados diferentes no output. A primeira variável que aparece no output é usada só dentro da função teste() e a segunda fica disponível para toda a timeline. Se quiser ver a variável de fora por dentro da função use:

 

frase = "eu sou a frase de fora";function teste() {	var frase = "eu sou a frase de dentro";	trace(frase);	//para ver a de fora, localize em qual timeline ela está:	trace(this.frase);}teste();trace(frase);
Agora, só pra comprovar, não vamos usar o var na variável de dentro e ver o que acontece:

 

frase = "eu sou a frase de fora";function teste() {	frase = "eu sou a frase de dentro";	trace(frase);	trace(this.frase);}teste();trace(frase);
Teste o código e verá que ele substituiu o valor da variável de fora.

 

Abraço galera

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem lembrado Antonio

 

 

nesse caso seria uma questão de escopo da variavel, caso se precise utilizar o mesmo nome dentro e fora de uma função

 

 

uma outra vantagem que lembrei agora é para tipificar a variavel, digitar " : " e o tipo da variavel

 

 

var numero:Number = 0

só funciona com o var antes

 

 

numero:Number = 0//var acusar erro
tipificar uma variavel é util para evitar que você insira um tipo de valor diferenter a ela

 

 

var numero:Number numero = "teste" // vai acusar erro

além disso quando você tipifica a variavel, a opção de code hints fica disponivel(aquela caixinha com as propriedade e metodos que abre depois do ponto " . " )

 

essa ai:

 

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valew aew Eder Fortunato e Antoniosp!!!

 

Eu comecei a usar actionscript por causa do trampo... mas aprendi melhor por causa de um programador q entrou lá e me ajudava e incentivava a desenvolver minhas próprias actions ao invés de pegar pronto na net!!!

 

Acho q faz uns 7 meses q mexo com action... mas aprendi tudo na raça... então muita coisa teórica eu deixei passar pela euforia de ver tudo funcionando!!!

 

Esse meu site por exemplo é todo em action... não existe nada no palco...

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito bom o topicomas fiquei com uma duvida..caso eu declare a variavel dentro de uma funcao.. ela ira expirar quadno a funcao acabar certo? entao nao terei acesso a ela em outra timeline dentro de um movieclip...logo, a solucao seria declara ela direto (ao invez de usar var Nome = "Joao";) usar Nome = "Joao";...porem isso seria errado? seria uma má pratica como o eder falou acima.. declar as variaveis antes.. era uma boa pratica..ou eu poderia declarar a variavel fora, e por o valor dentro(alimentar uma variavel, declarada fora, dentro uma funcao)? hmm tipovou tentar isso agora, acho qu vai dar certo (como sou burro)

Compartilhar este post


Link para o post
Compartilhar em outros sites

var histTitulo:String;var retorno:LoadVars = new LoadVars();retorno.load('http://localhost/graticia/historia.php');retorno.onLoad = function(ok) { if (ok) { pages.for_text.asd.histTexto.text = this.texto; histTitulo = this.titulo; }};trace(histTitulo);nao teve como =/var histTitulo:String;var retorno:LoadVars = new LoadVars();retorno.load('http://localhost/cliente/historia.php');retorno.onLoad = function(ok) { if (ok) { pages.for_text.asd.histTexto.text = this.texto; histTitulo = this.titulo; }};trace(histTitulo);nao teve como =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que você fez no segundo codigo esta certo, o problema foi que você esta testando dentro do onLoad, ele demora um pouco pra carregar

 

da uma lida aqui que foi mostrado como corrigir isso

 

 

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só pra constar, dá pra fazer isso sim SlyX:

 

var nome:Stringfunction teste (){	nome = "Antonio";}trace(nome) // undefinedteste();trace(nome) // Antonio

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.