Ir para conteúdo

POWERED BY:

Arquivado

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

Alexandre Fabre

Flash GetURL e Query Strings

Recommended Posts

Galera, antes de mais nada quero agradecer ao Imasters por boa parte que conheço hoje sobre Flash/Dreamweaver/PHP, etc... nestes dois anos como webdesign. Geralmente quando tenho dúvida sobre alguma coisa reviro a Net de cabeça pra baixo e consigo resolver o problema, mas desta vez não achei nada. Achei tópicos parecidos mas sem solução, logo vamos lá!!! Acredito que se resovermos o problema vai se útil para todos, por isso coloquei todos os códigos:

 

Desenvolvi meu site com o topo flash e o conteúdo em HTML. Estou chamando o conteúdo para dentro de uma tabela com uma <DIV>, na DIV coloquei um include <? include("query.php")?> chamando minha query strings:

 

 

query.php:


$pages = array('recursos', 'faq', 'help', 'shop');

//definindo as paginas dentro de communitty e outras pastas...

$wpages = array('contato' => 'includes/area/contato');

//se $page = a algum array de $wpages, ele se torna o contedo dentro do array(o diretrio que definiu.

$w_keys = array_keys($wpages);

if(in_array($page, $pages)) include("$page.php");

elseif(in_array($page, $w_keys)){ foreach($wpages as $k => $v) if($k == $page) { include("$v.php"); break; } }

elseif($page == NULL){ include('inicial.php'); }

else{ print 'Pagina não encontrada!'; }

?>

linenums:0'>if(isset($_GET['page'])) $page = (string)strip_tags($_GET['page']); $pages = array('recursos', 'faq', 'help', 'shop'); //definindo as paginas dentro de communitty e outras pastas... $wpages = array('contato' => 'includes/area/contato'); //se $page = a algum array de $wpages, ele se torna o contedo dentro do array(o diretrio que definiu. $w_keys = array_keys($wpages); if(in_array($page, $pages)) include("$page.php"); elseif(in_array($page, $w_keys)){ foreach($wpages as $k => $v) if($k == $page) { include("$v.php"); break; } } elseif($page == NULL){ include('inicial.php'); } else{ print 'Pagina não encontrada!'; } ?>

Bom, quanto a este sistema é acima é o seguinte, para os arquivos que estão no mesmo diretório que o index.php, você apenas define ele no array() apenas com o nome, exemplo, se o arquivochama [Arquivo].php você vai por apenas dentro do array() [Arquivo], se o arquivo estiver em outro diretório, você vai por o diretório com o nome do arquivo, só que sem a extenção, exemplo: o diretório é comunity/info/players.php você põe la dentro do array 'nome_que_voce_quer' => 'comunity/info/players', o sistema é 100% seguro, e prático, se o arquivo que o cara for, não existe ele retorna o erro Pagina não encontrada.

 

 

No botão do meu menu flash eu chamo o meu conteúdo para dentro da <DIV> com o seguinte código, por exemplo o contéudo recursos:

 

on (release) {

getURL("index.php?page=recursos");

}

 

Está tudo funcionando corretamente, o único problema é que toda vez que carrega o meu conteúdo o menu em flash se reinicia. Alguém poderia me dizer o que devo fazer para que isto não aconteça?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso acontece porque você dá um "refresh" na página ao chamar esse endereço. Então todo o html é gerado novamente o flash é carregado de novo. Para evitar isso existem algumas alternativas como javascript, frame, iframe ou fazer um outro flash igual a esse mas sem a animação inicial por exemplo, aí não vai parecer que ele "recarregou", mas é relativo...Flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, creio que a melhor opção seria você utilizar o AJAX.

 

Ele vai permitir que você altere o conteúdo da página sem dar refresh e com isso você evita o reinicio da animação do menu. Além de tudo, vai evitar que você utilize frames ou iframes, que te daríam um pouco mais de trabalho e deixaríam a tua página mais lenta... fora o detalhe de que IFRAME não funciona corretamente com o IE7 (a não ser q seja liberado no browser do usuário).

 

Dá uma olhadinha no Ajax e faz uns testes... vale a pena!

 

Martinelli http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente usar Iframe não é uma boa saída, aqui no Forum já observei que quando alguém tem dúvida sobre o assunto acima sempre é indicado usar o Ajax. No Botão Flash ficaria assim:

 

on(release){

getUrl("java script:carrega('home.html','conteudo')");

}

 

Mas o eu não estou muio interado com Ajax. Consegui o Code abaixo aqui em um Forum, mas não sei aonde devo alterar para chamar minha home, e o conteudo:

 

ajax.js


}

} else if (window.ActiveXObject) { // IE

try {

xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

} catch (e) {

try {

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

} catch (e) {}

}

}

if (!xmlhttp) {

alert('Giving up linenums:0'>if (window.XMLHttpRequest) { // Mozilla xmlhttp = new XMLHttpRequest(); if (xmlhttp.overrideMimeType) { xmlhttp.overrideMimeType('text/xml'); }} else if (window.ActiveXObject) { // IE try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} }}if (!xmlhttp) { alert('Giving up :( Cannot create an XMLHTTP instance'); }function carrega(n){ document.getElementById("loading").style.display="block" //Abre a url xmlhttp.open("GET", "funcoes.php?n="+n,true); //Executada quando o navegador obtiver o código xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4){ //Lê o texto e esconde o gif var texto=xmlhttp.responseText document.getElementById("loading").style.display="none" //Desfaz o urlencode texto=texto.replace(/\+/g," ") texto=unescape(texto) //Exibe o texto na div principal var conteudo=document.getElementById("principal") conteudo.innerHTML=texto //Obtém os links do site ao terminar de carregar cada página var menu=document.getElementById("estrutura") var links=menu.getElementsByTagName("a") for(var i=0;i<links.length;i++) links.onclick=linkclick } } xmlhttp.send(null)}function carrega_flash(n, uf){ document.getElementById("loading").style.display="block" document.getElementById("mostra").style.display="none" //Abre a url xmlhttp.open("GET", "funcoes.php?n="+n+"&uf="+uf,true); //Executada quando o navegador obtiver o código xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4){ //Lê o texto e esconde o gif var texto=xmlhttp.responseText document.getElementById("loading").style.display="none" document.getElementById("mostra").style.display="block" //Desfaz o urlencode texto=texto.replace(/\+/g," ") texto=unescape(texto) //Exibe o texto na div principal var conteudo=document.getElementById("mostra") conteudo.innerHTML=texto //Obtém os links do site ao terminar de carregar cada página var menu=document.getElementById("estrutura") var links=menu.getElementsByTagName("a") for(var i=0;i<links.length;i++) links.onclick=linkclick } } xmlhttp.send(null)}function carrega_home(n){ document.getElementById("loading").style.display="block" //Abre a url xmlhttp.open("GET", "funcoes.php?n="+n,true); //Executada quando o navegador obtiver o código xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4){ //Lê o texto e esconde o gif var texto=xmlhttp.responseText document.getElementById("loading").style.display="none" //Desfaz o urlencode texto=texto.replace(/\+/g," ") texto=unescape(texto) //Exibe o texto na div principal var conteudo=document.getElementById("conteudo") conteudo.innerHTML=texto //Obtém os links do site ao terminar de carregar cada página var menu=document.getElementById("estrutura") var links=menu.getElementsByTagName("a") for(var i=0;i<links.length;i++) links.onclick=linkclick } } xmlhttp.send(null)}function linkclick(e){ //Correção para eventos quebrados da Microsoft if(typeof(e)=='undefined')var e=window.event source=e.target?e.target:e.srcElement //Correção para o bug do Konqueror/Safari if(source.nodeType==3)source=source.parentNode //Obtém o número quebrando a url n=source.getAttribute("href").replace(/.*=/,"") //Chama o carrega carrega(parseInt(n)) //Cancela o click (evita a navegação) return false}function init(){ //Obtém os links do site var menu=document.getElementById("estrutura") var links=menu.getElementsByTagName("a") //Atribui o evento for(var i=0;i<links.length;i++) links.onclick=linkclick}if(xmlhttp)window.onload=init

Sei que carrego o js com o código na página HTML:

 

"script src="site_arquivos/ajax.js" type=text/javascript></SCRIPT>"

 

e nomeio minha <DIV class=conteudo></DIV>, por exemplo.

 

É realmete assim que se faz??? Alguém poderia me orientar como devo proceder na adaptação do código acima para para chamar minha home e o contéudo, explicando melhor o script acima.

 

Agradeço a ajuda. E é mais uma coisa que estou aprendendo!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.