Ir para conteúdo

Arquivado

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

alnxp

[Resolvido] como criar variaveis dinamicamente?

Recommended Posts

Olá....

 

minha dúvida hoje é como posso criar variaveis dinamicamente usando for?

 

já tentei de algumas maneiras como:

 

function lerXML(e:Event):void { 
xmlData = new XML(e.target.data);
for(var i:Number=0; i<=10; i++){
var ['img']+i:URLRequest = new URLRequest(xmlData.foto[i].@titulo);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta isso:

 

function lerXML(e:Event):void { 
    xmlData = new XML(e.target.data);

    for(var i:Number=0; i<=10; i++){
        this["img" + i] = new URLRequest(xmlData.foto[i].@titulo);
    }
}

Costumava fazer isso com AS2. Nunca fiz com AS3.

 

Voce pode também criar um array, e cada volta do loop adicionar um elemento nele. É o que eu faria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Maneira mais limpa de se fazer é

 

var img:Array = new Array();
function lerXML(e:Event):void { 
 xmlData = new XML(e.target.data);

 for(var i:Number=0; i<=10; i++){
 img[i] = new URLRequest(xmlData.foto[i].@titulo);
 }
}

Assim fica limpinho e o img fica sendo valido pra qualquer lugar do script

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pessoal...

eu estou tentando na verdade criar e carregar loaders dinamicamente

 

var img:Array = new Array();
var loader:Array = new Array();

function lerXML(e:Event):void { 
xmlData = new XML(e.target.data);
 for(var i:Number=0; i<=10; i++){
	 
img[i] = new URLRequest(xmlData.foto[i].@link); 
loader[i] = new Loader(); 
loader[i].load("img" + i);
addChild(loader[i]);
trace("img" + i);
}}

#1034: Falha de coerção de tipo: não é possível converter "img0" em flash.net.URLRequest.

 

nao sei qual a meneira adequada para isso... também pensei em apenas criar somente as variaveis pelo for e depois usar elas nas minhas funções que chamam o objeto ao palco atravez do addChild, mas assim, quando tentei, o flash nao reconhece as variaveis criadas... meu objetivo é reduzir linhas de códigos, pois no momento tenho 20 comandos de loaders para cada img, então fica muuito extenso o código.

 

De que outra maneira poderia resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa....

 

muito obrigado Berseck, fiz mais umas mudanças e consegui o que queria!!

 

só uma curiosidade, não consegui escrever um caminho para o addChild... acabei resolvendo de outra forma, mas como seria, para adicionalo dentro de um outro movieclip? instancia.instacia.addChild? tentei de varias formas mas parece que flash não aceita adicionar caminhos desse jeito...

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.