Ir para conteúdo

POWERED BY:

Arquivado

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

Megas

Substituto para loadvars?

Recommended Posts

Eu uso loadvars para fazer comunicação com o php, em alguns sites funciona beleza, crieu uma tabela de preços para www.tatacon.com.br que funciona muito bem. Mas uso ezatamente o mesmo sistema em meu site e funciona somente quendo quer, ultimamente não quer mais.

 

Então: existe algo melhor que LoadVars e que funcione?

 

Eu estou aprendendo tambem a usar ajax, aprendi que é possivel fazer um arquivo php fingir que é xml mudando o header, será que há maneira de fazer o flash ler xml imprimido em um arquivo php?

 

 

Eu costumo usar os codigos:

 

stop ();

var php_process = new LoadVars();

var post_variable = new LoadVars();

 

post_variable.id = 1

 

post_variable.sendAndLoad("http://www.minhapagina.com.br/meu_script.php", php_process, "POST");

php_process.onLoad = function (success:Boolean):Void{

 

if (success){

play()......

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom XML sempre é uma opção

 

Mas LoadVars não tem substituto não =/

Infelizemente só com AS 3.0

 

Mas nunca tive problemas com ele basta colocar o &variavel=valor&

 

Que funciona perfeitamente bem...

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas há uma maneira em que pode-se fazer um script php se apresentar como xml mudando as configurações do header:

 

$gmtDate = gmdate("D, d M Y H:i:s");

header("Expires: {$gmtDate} GMT");

header("Last-Modified: {$gmtDate} GMT");

header("Cache-Control: no-cache, must-revalidate");

header("Progma: no-cache");

 

header("Content-type: application/xml");

echo $minha_estrutura_xml;

 

 

Será que da pra fazer o flash carregar esse xml?

 

eu preciso de algo bem dinamico e so com php e mysql

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que eu saiba sim...

Você consegue interpretar um php com esquema XML pelo flash

 

Não sei com AS 2.0 se isso vai la da muito certo... pode ser que você não consiga.

Mas com AS 3.0 da com certeza pq o esquema do twitter se faz assim ;)

 

E o flash não entende isso header("Cache-Control: no-cache, must-revalidate");

Tem que colocar uma variavel em get ou algo assim para matar o cache que esteja no proprio flash... de onde ele vai carregar as informações

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Droga me ocorreu um problema:

 

Como eu envio as variaveis?

O Load Vars sem problema ele envia e tudo, mas sem ele como eu faria? integração loadVars-loadXML? como seria?....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi?

 

Você vai ter que usar o LoadVars() quer você queira ou não para enviar as variaveis... ou use o antigo LoadVariablesNum que não é mais recomentando...

 

LoadVars.send()

Ou

LoadVars.sendAndLoad()

 

Para enviar as variaveis ;)

Mesmo para trabalhar com XML e criar ou desmontar xml com php... você vai ter que usar loadvars

Ou crie funções javascript que chamem funções com getURL que passe parametros... e o javascript se comunica com o php e faz a birosca toda funcionar....

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

É que eu pego informações do banco de dados, o loadVars, envia uma variavel para o php, faz a consulta então retorna o resultado print"&variavel...

 

mas não da pra fazer isso com loadXML.

Eu so queria usar uma estrutura em xml pq parece que o carregamento dele nunca falha (ao contrario do loadVars)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele reconhece como sendo xml:

testexml.php

<?
$gmtDate = gmdate("D, d M Y H:i:s");
header("Expires: {$gmtDate} GMT");
header("Last-Modified: {$gmtDate} GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Progma: no-cache");


$meuXML="<?xml version='1.0' encoding='utf-8'?>";
$meuXML.="<dados>";
$meuXML.="<informacao>teeexto</informacao>";
$meuXML.="</dados>";


header("Content-type: application/xml");
echo $meuXML;
?>

.fla:

var myXml:XML = new XML();
myXml.onLoad = function(success:Boolean):Void{
	if(success){
		trace(myXml.childNodes[0].firstChild.nodeName)
	}else{
		trace("erro")
	}
}
myXml.load("http://www.site.com/testexml.php")
apesar que o nodeValue retorna null...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi o que eu te falei...

Em AS 2.0 isso ai as vezes não funciona não ;)

 

O jeito é você transformar e salvar como XML em seu servidor ai sim carregar...

 

E eu nunca vi LoadVars bem feito falhar... e se falhou é pq o código ta errado.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, ele funciona so quando quer:

 

stop ();

var php_process = new LoadVars();
var post_variable = new LoadVars();


post_variable.id =  Number(_root.id);


post_variable.sendAndLoad("http://www.meusite.com/date.php", php_process, "POST");
php_process.onLoad = function (success:Boolean):Void{
	
    if (success){
		
		
        _root.var = unescape(this.var);
        
		
        play ();
		
		
    }else{
        gotoAndPlay(1);
    } 
}

Nada aqui está errado.

Sera que tem algo haver com o servidor gratuito?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse código não está correto por isso que não funcina sempre...

 

LoadVars se faz assim:

var lv:LoadVars = new LoadVars();
var sv:LoadVars = new LoadVars();

sv.id = Number(_root.id);
sv.sendAndLoad("http://www.meusite.com/date.php", lv, "POST");

lv.onLoad = function(ok){
 if(ok) var pega = lv.variavel;
 else trace('deu erro');
}

Ou seja você tem que por o loadvars.variavel e não _root.variavel

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

então o problema é

 

_root.var = unescape(this.var);

 

vs

 

var pega = lv.variavel; ?

 

o _root.var é so a variavel que eu estou definindo, vai no root.

lv e this não deveria ter diferença, eu vou testar.

 

E kisuke, a aplicação que eu quero fazer é algo semelhante ao perfil de uma pessoa no forum do imaster.

Por exemplo:

você é o que? um moderador, q

uando se cadastrou? 00/00/00,

quantas postagens? 2222...

 

O flash tem que pegar essas informações do php.

 

Isso vai ser muito dinamico, por isso queria um xml dinamico

Compartilhar este post


Link para o post
Compartilhar em outros sites

não funcionou... eu alterei o codigo e não funciona:

 

var php_process = new LoadVars();
var post_variable = new LoadVars();

post_variable.id =  Number(_root.id);

post_variable.sendAndLoad("http://www.adinancenci.adminsites.com.br/extrasolar/planet_date.php", php_process, "POST");
php_process.onLoad = function (success:Boolean):Void{
	
    if (success){
			
        var variavel= php_process.variavel;
        
	play ();
			
	}else{
        gotoAndPlay(1);
    } 
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu ainda não cheguei a resolver o problema, vou tentar refazer o swf desde o zero pra ver.

 

Mas agora eu quero tentar fazer ele carregar xml do php. Eu descobri como enviar variaveis, é so usar loadXML(script.php?variavel=valor)

 

Mas eu dou um trace em todo o xml ou então nos nomes dos nodos e funciona, mas ele não reconhece o valor dos nodos, sempre volta null.

 

Eu não sei usar AS3, alguem sabe por que os scripts não funcionam?

 

<?
$gmtDate = gmdate("D, d M Y H:i:s");
header("Expires: {$gmtDate} GMT");
header("Last-Modified: {$gmtDate} GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Progma: no-cache");


$meuXML="<?xml version='1.0' encoding='utf-8'?>";
$meuXML.="<dados>";
$meuXML.="<informacao>teeexto</informacao>";
$meuXML.="</dados>";


header("Content-type: application/xml");
echo $meuXML;
?>
Flash:

var myXml:XML = new XML();
myXml.onload = function(success:Boolean):Void{
        if(success){
                trace(myXml) // funciona
                trace(myXml.childNodes[0].firstChild.nodeName) // funciona
                trace(myXml.childNodes[0].firstChild.nodeValue) //não funciona
        }else{
                trace("erro")
        }
}
myXml.load("http://www.site.com/testexml.php")

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.