Ir para conteúdo

POWERED BY:

Arquivado

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

ronaldosdb

php + flash

Recommended Posts

Basta você carregar um objeto XML (no Flash, é claro) com um arquivo php que irá gerar um XML com as informações que você quer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Brigado Marcio.

 

Agradeco sua atencao, procurei pesquisar os itens que voce me sugeriu mas nao obtive exito...

Ficaria mto agradecido caso pudesse me ajudar pois tenho que entregar esse projeto co urgencia e nao sei como faze-lo (so mexo com php)

 

Em tese, tenho que exibir no flash o titulo, texto e data do ultimo registro que esta no banco mysql (o mais atual) e ter uma opcao de ir pra proxima ou anterior...paginar.

 

Será que você pode me dar um exemplo?

 

Ja visitei diversos sites, colei varios exemplos mas nenhum funciona.

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este exemplo que vou mostrar, utiliza:

 

- Flash AS 3

- PHP e MySQL

- Um framework que uso e mantenho (http://www.hufersil.com.br/lumine)

 

Neste último, nada impede que você use o MySQL direto. Uso ele para ficar mais fácil as operações com o banco de dados.

 

Código em PHP

 

Na primeira etapa, vamos fazer uma consulta na tabela de usuários do sistema que mantenho aqui na faculdade onde trabalho.

Vamos listar somente os 20 primeiros registros da tabela, para que nosso exemplo não fique muito grande.

Comentei o código linha por linha, então leia os comentários que facilitará bastante o entendimento.

 

<?php

// recupera o arquivo de configuração
// nele contem os includes das classes, configurações com o banco etc.
require_once 'phps/config.php';

// importa a classe de usuários
Lumine::import('Usuarios');

// cria uma nova instancia de usuarios
$obj = new Usuarios;

// limita em 20 registros e faz a consulta
$obj->limit(20)
	->find();

// string XML para enviar ao flash
$xml = '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL;

// inicia o nó raiz do XML
$xml .= '<usuarios>' . PHP_EOL;

// para cada usuario encontrado
while( $obj->fetch() )
{
	// cria um novo nó XML
	// usamos utf8_encode para os acentos irem certinho para o flash
	// sem precisar usar a gambiarra do System.useCodePage do Flash
	$xml .= sprintf('   <usuario nome="%s" login="%s" senha="%s" codusuario="%s" />' . PHP_EOL,
			utf8_encode($obj->nome),
			$obj->login,
			md5($obj->senha),
			$obj->codusuario
	);
}

// fecha a string XML
$xml .= '</usuarios>';

// muda o cabeçalho para enviar os dados
header("Content-Type: text/xml");
// envia os dados
echo $xml;

Salve o arquivo com o nome de usuarios.php.

 

Note que usamos a função header do PHP para alterar o cabeçalho de envio padrão de informações, para quando acessarmos através do navegador, o mesmo já reconheça que se trata de um XML, e não de um arquivo texto comum.

 

Após isso, acesse pelo navegador.

No meu caso, o endereço ficou http://localhost/usuarios.php

 

O resultado deverá ser semelhante ao abaixo (alterei os dados de login e nome por asterisco para poder postar):

 

<usuarios>
<usuario nome="**************" login="**************" senha="fda32ab687e786d03ce45c7a676596fc" codusuario="1"/>
<usuario nome="**************" login="**************" senha="f7cf05cecc36bea67c8e474969f05477" codusuario="282"/>
<usuario nome="**************" login="**************" senha="dbd088f925b889ef668a2cb14068d1f2" codusuario="283"/>
<usuario nome="**************" login="**************" senha="1b51b29e3bb1d35b40096ffe3201860f" codusuario="284"/>
<usuario nome="**************" login="**************" senha="32e38b203469f6cc59d721d8eb74d595" codusuario="285"/>
<usuario nome="**************" login="**************" senha="911a1f8772a360938d64ce0cbaca2345" codusuario="286"/>
<usuario nome="**************" login="**************" senha="66cabb01f180d2a6282559dcf930e333" codusuario="287"/>
<usuario nome="**************" login="**************" senha="1d9a4034f132d4c396465ba2c35c3da0" codusuario="289"/>
<usuario nome="**************" login="**************" senha="c007710f9852e673a7c2ef995469240f" codusuario="290"/>
<usuario nome="**************" login="**************" senha="dba7b84a914e501872df43999c27f32e" codusuario="267"/>
<usuario nome="**************" login="**************" senha="77d5f9a97bc57968336fed0a3ee288d0" codusuario="268"/>
<usuario nome="**************" login="**************" senha="ff381d28d5cb0c66f0d17138b02d8e91" codusuario="269"/>
<usuario nome="**************" login="**************" senha="f7273747b8aa4a655df190920f60de16" codusuario="270"/>
<usuario nome="**************" login="**************" senha="a0e82e160bf97a05bf4dbee09c50e799" codusuario="271"/>
<usuario nome="**************" login="**************" senha="630a354571be287e6d0f8258ec737a50" codusuario="272"/>
<usuario nome="**************" login="**************" senha="e85225a5fe7dbf331d9c97a1881adc77" codusuario="273"/>
<usuario nome="**************" login="**************" senha="911a1f8772a360938d64ce0cbaca2345" codusuario="274"/>
<usuario nome="**************" login="**************" senha="ba74c695ac20c7ee997eb6c7ce06ae74" codusuario="275"/>
<usuario nome="**************" login="**************" senha="2ff8b705da6b8c7d25ee6c92da6b0fee" codusuario="276"/>
<usuario nome="**************" login="**************" senha="c17d37ae463e31bca00a101463726525" codusuario="277"/>
</usuarios>

A parte em PHP está pronta, agora vamos para a parte em Flash.

 

Acessando um XML via Flash AS 3

 

Abra um novo arquivo no Flash CS 3 com a versão de Action Script 3.

 

O código abaixo irá consultar o arquivo PHP que criamos, pegar o retorno gerado, colocar dentro de um objeto XML e exibir os resultados, criando um objeto TextField e incluindo no cenário.

 

Cole o código no quadro no primeiro frame para ver o resultado (não esqueça de alterar o caminho para o arquivo PHP se necessário):

 

// ignora espaços em branco do XML
XML.ignoreWhitespace = true;

// objeto XML
var oxml:XML;
// URL onde estão os dados
var urlString:String = 'http://localhost/usuarios.php';
// objeto de requisição
var req:URLRequest = new URLRequest();
// objeto de carregametno de dados
var loader:URLLoader = new URLLoader();

// função que irá analisar o retorno do arquivo PHP
// ou seja, o XML gerado
// aqui você poderá ver o resultado e iteragir conforme o necessário
function analisaXML (e:Event):void {
	// instancia o objeto de XML com os dados enviados
	// do arquivo PHP
	oxml = XML(e.target.data);
	
	// variavel para contar
	var it:int = 0;
	
	// para cada usuario na lista
	for each( var item in oxml.usuario )
	{
		// cria um campo text
		var txt:TextField = new TextField();
		// ajusta a largura
		txt.width = 300;
		// ajusta a altura
		txt.height = 20;
		// coloca o nome do usuario
		txt.text = item.@nome;
		// ajusta a posição em Y
		txt.y = 20 * it++;

		// coloca no container principal (cenário)
		addChild(txt);
	}
}

// diz que o método de requisição é POST
req.method = URLRequestMethod.POST;
// informa a URL a ser consultada
req.url = urlString;

// adiciona o ouvinte ao carregador, dizendo que
// assim que carregar, deverá executar a função analisaXML
loader.addEventListener(Event.COMPLETE, analisaXML);
// carrega os dados
loader.load( req );

Na função "analisaXML", você poderá fazer as ações que forem pertinentes ao seu caso.

Neste exemplo, simplesmente exibi os resultados na tela com um TextField.

 

@braços e fique com Deus!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola turma, boa tarde!

 

Pessoal, por favor me ajudem, nao consegui integrar pelo exemplo acima pois ele pede algumas funcoes e um arquivo AS (Action Script) que nao possuo...

 

Se alguem puder me ajudar, tenho que entregar o projeto hoje (é meu ultimo dia de prazo).

 

Tenho no banco mysql (tb já fiz o front-end para inserir, excluir, atualizar)

 

id, titulo, texto, foto

 

Só q o cliente quer exibir a ultima noticia (mais atual) no flash e poder paginar por botoes (proximo e anterior)

 

Pelo amor de Deus, se alguem tiver um exemplo, ficaria mto grato...

 

 

Vleu

 

Ronaldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Arquivo AS?

 

Este exemplo que te passei é em ActionScript 3. Ele não pede nenhum outro arquivo adicional.

Testei aqui e funcionou normal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse aqui

 

// importa a classe de usuários
Lumine::import('Usuarios');

Hugo, voce nao poderia me indicar um exemplo que funcionasse somente para ler o q ta no banco (a primeira linha) e poder paginar isso no flash?

Ele nao ta lendo nada, tenho que criar algum campo de text dinamic no flash? qual seria a instancia?

 

Abs

 

Ronaldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

No inicio do post que fiz este exemplo, coloquei que utilizo um framework próprio para fazer a leitura do banco de dados para ficar mais fácil.

 

Este exemplo que vou mostrar, utiliza:

 

- Flash AS 3

- PHP e MySQL

- Um framework que uso e mantenho (http://www.hufersil.com.br/lumine)

 

Neste último, nada impede que você use o MySQL direto. Uso ele para ficar mais fácil as operações com o banco de dados.

O que enviei naquele exemplo, era fazer a lógica de como montar no Flash e PHP.

Não foi uma solução pronta de como resolver o seu problema.

 

Agora estou no meu trabalho, e não posso montar um exemplo exato de como resolver o seu caso, até mesmo porque isso depende de como está estruturado seu banco e seu arquivo Flash, e isso demanda tempo.

 

Poste estes dados para que eu ou outra pessoa possa ver se pode te ajudar neste caso.

 

@braços

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, compreendi

 

 

 

Mto obrigado pela atencao

 

 

 

Meu banco esta estruturado assim: tabela noticias

`id` int(20) NOT NULL auto_increment,

  `titulo` varchar(255) collate latin1_general_ci NOT NULL default '',

  `texto` text collate latin1_general_ci NOT NULL,

`foto` varchar(255) collate latin1_general_ci NOT NULL default '',

  `data` date NOT NULL,

  PRIMARY KEY  (`id`)

);

 

 

 

 

Meu php está assim: noticias.php

 

<?php  
$conn = @mysql_connect("localhost", "root", "") or die(mysql_error()); 
$db = @mysql_select_db("diagrama", $conn) or die(mysql_error()); 

$sql = "select * from noticias"; 
$sqlQuery = @mysql_query($sql, $conn) or die(mysql_error()); 
$i = 0; 
$cant = 0;
while($row=mysql_fetch_array($sqlQuery)){
   echo "&titulo$cant=$row[titulo]&texto$cant=$row[texto]&foto$cant=$row[id]&";
   $cant++;
}
echo "cant=$cant";


mysql_close($conn); 
?>

Qto ao flash, ainda to sem nocao de como fazer, apenas tentando adaptar esse q você postou...

 

Caso alguem possa ajudar fico mto grato, acredito que servira de exemplo para mtos q tem duvida como eu

 

Vleu

 

Ronaldo

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.