Ir para conteúdo

POWERED BY:

Arquivado

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

KiTTo

Tipos das variaveis carregas com loadVars

Recommended Posts

E aí pessoal tudo bem?

To com dúvidas sobre o loadVars. Vou colcoar aqui o meu código e mais abaixo eu explico o problema.

 

1º Frame:

function Fornecedores():Void{ 	var Forn = new LoadVars(); 	Forn.load("flashForn.php"); 	Forn.onLoad = function(ok){ 		if(ok){ 			_global.total = Forn.totalForn;			_global.atual = 0;			gotoAndPlay(2);		}else{ 					trace("Erro na leitura do arquivo"); 				} 	}; }Fornecedores();

2º Frame

if (_global.atual <= _global.total) {	_global.atual = _global.atual + 1;		trace("Fornecedor Atual: "+_global.atual);}else{	trace("Zerou!");	_global.atual = 0;}

Este AS é o inicio de uma 'galeria' de fornecedores. Cada vez que entrar no 2º frame ele irá inserir +1 na variavel _global.atual para, apartir deste numero , carregar e exibir uma imagem. O problema é que o IF não está funcionando.

Suspeito que seja por causa do tipo de variavel, pq no Debug do flash eu vi que o valor da variavel _global.total é mostrado entre aspas enquanto o da variavel _global.atual é mostrado sem as aspas.

 

As aspas indicam que é string, certo?

Então, como mudar o tipo da variavel retornada pelo loadVars?

 

Desde já agradeço!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

converta apenas quando for comparar ou fazer operações matematicas

 

ACTIONSCRIPT
if (Number(_global.atual) <= Number(_global.total)) {

 

      _global.atual = Number(_global.atua)l + 1;

     trace("Fornecedor Atual: "+_global.atual);

}else{

 

    trace("Zerou!");

    _global.atual = 0;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

e aí cara!Primeiramente obrigado pela ajuda, mas não funcionou =(O If continua não funcionando, ele conta até não aguentar mais.O que pode ser?Obrigado pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está OkSempre o mesmo.O problema é que um é do tipo string e outro é do tipo number, então o if nunca vai funcionar.Queria saber como tranformar a variavel string em number...To desesperado já... vlw pela ajuda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi como eu mostrei lá em cima

 

if (Number(_global.atual) != Number(_global.total)) {	  _global.atual = Number(_global.atua)l + 1;	 trace("Fornecedor Atual: "+_global.atual);}

 

o lugar onde esta dando erro é no IF ?

 

teste dar uma trace:

 

trace(Number(_global.atual) )

 

e veja o que aparece

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse trace(Number(_global.atual) )mostra NaN...Quer dizer que a global ta vazia?<o>me ajuda... to perdidasso =(Vlw pela força ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso:trace(Number(_global.atual) )retornou NaN, quer dizer que o conteúdo não é numerose você der o trace assimtrace(Number(_global.atual.toString()) )trace(_global.atual.toString())o que retorna???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Incialmente ele retorna várias vezes 'NaN'Depois passa a contar...1122334455667788...Me ocorreu que pode ser um atraso do retorno das variáveis no PHP.Dei um setInterval, mas não adiantou muito.Depois me ocorreu outra coisa:A primeira vez que a _global.atual passa pelo if ela não está como Number, logo a primeira vez de um trace(Number(_global.atual)) será sempre NaN.Minhas teorias estão muito loucas ou faz algum sentido?Abração!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tu ta copiando o código exatamente errado daqui?

tem um errinho de digitação:

 

 

ACTIONSCRIPT
if (Number(_global.atual) != Number(_global.total)) {

 

      _global.atual = Number(_global.atual) + 1;

     trace("Fornecedor Atual: "+_global.atual);

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se com a dica da Sanamaria funciona, tinha mesmo um erro no meu codigo

 

 

quanto as suas teorias, você esta inicializando a variável _global.atual = 0; no 1º frame, dentro do onLoad

 

agora veja como esta a variável total

 

 

trace(_global.total)trace(Number(_global.total))trace('----------------'trace(Number(_global.atual) )trace(_global.atual)if (Number(_global.atual) != Number(_global.total)) {	  _global.atual = Number(_global.atual) + 1;	 trace("Fornecedor Atual: "+_global.atual);}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Priemira vez que passa pelo segundo frame:

 

undefined

NaN

----------------

NaN

undefined

 

Segunda vez:

 

12

NaN

----------------

0

0

 

Terceira vez:

 

12

NaN

----------------

1

1

 

 

Tem erro ao mudar a variável pra Number?

O problema pode estar no PHP?

 

segue o php:

 

<?php//Header("Content-type: text/html; charset=iso-8859-1");session_start();//error_reporting(E_ALL); /// TRATAMENTO DE ERROSinclude_once("cfg/cfg.main.php");require_once(MYSQLDB_CLASS); /////// NOVA CLASSE DE BANCO DE DADOS$db = new edz_db(DB_HOST, DB_USER, DB_PASS, DB_BASE); $rows = $db->db_query("SELECT * FROM fornecedor");if(count($rows) > 0) {	$i = 1;	foreach ($rows as $row) {		$conteudo .=  "&nome".$i."=".$row['nome']."&site".$i."=".$row['site']."ℑ".$i."=".$row['image']."&";	$i++;	}	$conteudo .= "totalForn=".count($rows);	echo $conteudo;}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

AeeeeAcho que o problema era de BIOS...Resolvi apagar tudo e refazer... e não é que funcionou O.oE olha que o código ta exatamente igual a antes...O flash tem disse né...Bah, muito muito obrigado por toda a ajuda!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.