Ir para conteúdo

POWERED BY:

Arquivado

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

michelmfreitas

[Resolvido] conversão de tipos

Recommended Posts

Pessoal, tenho uma função:

 

function loadCompleto(event:Event):void {
	
	var i:Number = 1;
	var num:int = int(loader.data.num);
	
	while(i <= num){
		
		String(i);
		trace(loader.data.nome+i);
		int(i);
		i++;

	}
	
}

a variavel i eh um numero, mas preciso soma-la com uma string. Faço a conversão para texto e depois para inteiro novamente... mas não funciona... pq?

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que na verdade você não está convertendo nada aí...

 

teria que ser assim:

 

function loadCompleto(event:Event):void {
	
	var i:Number = 1;
	var num:int = int(loader.data.num);
	
	while(i <= num){
		
		i = String(i);
		trace(loader.data.nome+i);
		i = int(i);
		i++;

	}
	
}

ou melhor:

 

function loadCompleto(event:Event):void {
	
	var i:Number = 1;
	var num:int = int(loader.data.num);
	
	while(i <= num){
		
		trace(loader.data.nome+ String(i) );
		i++;

	}
	
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu ja tinha tentado dessas duas maneiras mas nao deu...

 

ele até conta, mas dá undefined1, undefined2, undefined3.

 

Quando jogo direto:

 

trace(loader.data.nome1);

ele dá o nome normal... então acho que o erro está na concatenação... ele parece processar primeiro o loader.data.nome pra depois concatenar com o inteiro...

 

como será a solução?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desta forma não vai funcionar.

O que é esse loader?

O que é esse loader.data.nome?

 

Se você der trace em loader.data.nome, o que ele retorna?

 

Abrs

o loader vem de:

 

var loader:URLLoader = new URLLoader();

quando eu dou um trace em loader.data.nome1 ele retorna o nome da pessoa..

 

o que acontece é que ele não está concatenando...

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu ja tinha tentado dessas duas maneiras mas nao deu...

 

ele até conta, mas dá undefined1, undefined2, undefined3.

 

Quando jogo direto:

 

trace(loader.data.nome1);

ele dá o nome normal... então acho que o erro está na concatenação... ele parece processar primeiro o loader.data.nome pra depois concatenar com o inteiro...

 

como será a solução?

ah bom, pensei que o problema era pra voltar ele pra int; =p

 

nesse caso eu geralmente uso assim:

 

trace( loader.data.nome[i] );

o jeito que o Eder Fortunato mostrou deve funcionar tbém;

Compartilhar este post


Link para o post
Compartilhar em outros sites

não esquece de setar o tipo das variáveis:

 

loader.dataFormat = URLLoaderDataFormat.VARIABLES;

e também não esquece de usar o oncomplete:

 

por exemplo:

 

function completeHandler(evt:Event) {

		trace (evt.target.data );

		while(i <= num){
			trace(evt.target.data["nome"+i]);
		 i++;

}

	}
loader.addEventListener(Event.COMPLETE, completeHandler);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nenhum deles funcionou... =(

 

dá esse erro no output:

 

TypeError: Error #1010: Um termo é indefinido e não tem propriedades.
	at banner_animais_andre_fla::MainTimeline/loadCompleto()
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at flash.net::URLLoader/onComplete()

Compartilhar este post


Link para o post
Compartilhar em outros sites

gbs, eu já fiz tudo isso...

 

veja o cod completo...

 

var carregador:Loader = new Loader();
var endereco:URLRequest = new URLRequest("lista.txt")
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;

function loadCompleto(event:Event):void {
	
	var i:Number = 0;
	var num:int = int(loader.data.num);
	
	while(i < num){
		String(i);
		trace(loader.data.nome[i]);
		int(i);
		i++;
	}
	
}

loader.addEventListener(Event.COMPLETE, loadCompleto);

loader.load(endereco);

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta trocar aonde está assim:

 

var num:int = int(loader.data.num);

trace(loader.data.nome[i]);

por

 

var num:int = int(event.target.data.num);

trace(event.target.data.nome[i]);

Compartilhar este post


Link para o post
Compartilhar em outros sites

aewwwwww agora sim pessoal!!!!!!

 

fiz uma modificação apenas..

 

trace(event.target.data["nome"+i]);

assim funcionou..

 

o event.target já pega o elemento na origem dele neh... caminho completo dentro do addEventListener...

 

muito bom!!!

 

Valeu pessoal!!! Muito obrigado pela ajuda!!!

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.