Ir para conteúdo

POWERED BY:

Arquivado

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

NinoSPFC

Menu puxando do banco de dados

Recommended Posts

Galera tenho um banco em mysql onde existe uma tabela que se chama menu e um campo que se chama categoria.Neste campo categoria tem os seguintes registros:EsporteDançaMusicaQueria fazer no flash um menu..HomePerfilCategoria - Quando passar o mouse neste link abre um sub menu que puxa os dados do banco.ContatoAssim não preciso atualizar sempre no flash.. eu incluo direto a categoria no banco.Consegui fazer isso em css com <ul> <il> mais da muitos problemas nos navegadores.Alguem sabe alguma forma de fazer isso no flash? Valeuuu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem complexo..s.rrssr

 

Primeiro:

Crie uma página asp, php ou outra que puxe os valores do banco de dados e escreva no documento a seguinte linha (lembrando que deve ter somente isso na página):

categorias=Esporte,Dança,Musica

Nomeie como puxa_categoria.asp (ou a extensão que você precisar)

 

Segundo

No primeiro frame você coloca esse código:

 

var loading:LoadVars = new LoadVars();loading.onLoad = function(sucess:Boolean){var catArray:Array = new Array(categorias);}loading.load("puxa_categoria.asp");
Terceiro

Aqui a coisa complica...srsrsr.

você vai ter que fazer um loop no frame onde está seu menu de categorias, melhor se for num mc separado.

Dae você cria um Movieclip base (que seria a base do seu submenu), coloca um texto dinamico nele e nomeia ele como "titulo"

Arrasta ele para o local onde você vai colocar os submenus, coloca ele fora do palco, nomeia essa instancia como "subBase"

 

No frame você vai colcoar a seguitne action:

 

var iniY=0; // valor inicial da altura que vai ficar o primeiro submenuvar dist=5; // distancia entre os submenusfor(i=0;i<=loading.length;i++){   var clip = _root.subBase.duplicateMovieClip("sub"+i,this.getNextHighestDepth());   clip._x= 0 // valor x onde ficarão os submenusclip._y = iniY;iniY+= clip._height+dist;clip.titulo.text = categorias[i];}
Amigo, o princípio é esse, dae você vai modificando ae conforme o necessário!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Weverton valeu por responder .. então eu fiz o primeiro e o segundo passo..

 

No terceiro eu não entendi muito bem....

 

No primeiro frame do filme eu coloquei esta action

 

var loading:LoadVars = new LoadVars();loading.onLoad = function(sucess:Boolean){var catArray:Array = new Array(categorias);}loading.load("puxa_categoria.asp");

 

 

Dai eu criei um movie clip e estanciei ele como subBase neste movie clip no primeiro frame eu coloquei

 

var iniY=0; // valor inicial da altura que vai ficar o primeiro submenuvar dist=5; // distancia entre os submenusfor(i=0;i<=loading.length;i++){   var clip = _root.subBase.duplicateMovieClip("sub"+i,this.getNextHighestDepth());   clip._x= 0 // valor x onde ficarão os submenusclip._y = iniY;iniY+= clip._height+dist;clip.titulo.text = categorias[i];}

 

E criei um campo de texto dinamico com instancia de titulo...

 

 

Aonde que estou errando?

 

Abraço..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Weverton valeu por responder .. então eu fiz o primeiro e o segundo passo..No terceiro eu não entendi muito bem....No primeiro frame do filme eu coloquei esta action

var loading:LoadVars = new LoadVars();loading.onLoad = function(sucess:Boolean){var catArray:Array = new Array(categorias);}loading.load("puxa_categoria.asp");
Dai eu criei um movie clip e estanciei ele como subBase neste movie clip no primeiro frame eu coloquei
var iniY=0; // valor inicial da altura que vai ficar o primeiro submenuvar dist=5; // distancia entre os submenusfor(i=0;i<=loading.length;i++){   var clip = _root.subBase.duplicateMovieClip("sub"+i,this.getNextHighestDepth());   clip._x= 0 // valor x onde ficarão os submenusclip._y = iniY;iniY+= clip._height+dist;clip.titulo.text = categorias[i];}
E criei um campo de texto dinamico com instancia de titulo...Aonde que estou errando?Abraço..
você não deve colocar essa action dentro do mc base, e sim na timeline principal, logo abaixo do código de loadVars do segundo passo,t esta ae...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!!!Agora apresenta um alert A script in this movie is causing Adobe Flash Player 9 to run slowly. If continues to run, your computer may become unresponsive. Do you want to abort the script?Deve ser pelo fato de ele estar duplicando o movie clip sem termino...e no texto dinâmico apresenta undefined..Era para ocorrer isso mesmo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!!!Agora apresenta um alert A script in this movie is causing Adobe Flash Player 9 to run slowly. If continues to run, your computer may become unresponsive. Do you want to abort the script?Deve ser pelo fato de ele estar duplicando o movie clip sem termino...e no texto dinâmico apresenta undefined..Era para ocorrer isso mesmo?

Opa, encontrei um erro..rssrem vez de:
for(i=0;i<=loading.length;i++){
Coloque:
for(i=0;i<=catArray.length;i++){
em vez de:
clip.titulo.text = categorias[i];
Cloque:
clip.titulo.text = catArray[i];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nino,

 

faz atraves de XML, é melhor, mais organizado e mais facil de entender.

 

Crie um XML atraves do php, ou asp (eu uso php), e carrega ele no flash,

atraves de um objeto xml

 

aqui tem um tutorial muito bom acerca de carregar um xml no flash:

 

http://www.imasters.com.br/artigo/4929/fla...o_xml_no_flash/

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eita alterei como você falou e não mudou nada...continua dando os erros...Porque será?

Dá um trace em catArray.length:trace(catArray.length)Posta o resultado ae.. acho que o teu problema pode ser parecido com o de um programadorphp ae..Flw!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Weverton...Fiz isso..Apresenta vários..undefinedundefinede no final...Error opening URL 'file:///C|/Documents%20and%20Settings/Desktop/puxa_categoria.php'Abraço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Weverton...Fiz isso..Apresenta vários..undefinedundefinede no final...Error opening URL 'file:///C|/Documents%20and%20Settings/Desktop/puxa_categoria.php'Abraço...

Amigo, tenta utilizar um caminho absoluto na tua página php.. tipo http://www.minhaweb.com.br/puxa_categoria.php.Ok??

Compartilhar este post


Link para o post
Compartilhar em outros sites

A mesma coisa..undefinedundefinedundefinedError opening URL 'http://www.onomedomeusite.com.br/menuflash/puxa_categoria.php'Pensei que era algo de permissão mais está tudo liberado 777... estranho..

Compartilhar este post


Link para o post
Compartilhar em outros sites

A mesma coisa..undefinedundefinedundefinedError opening URL 'http://www.onomedomeusite.com.br/menuflash/puxa_categoria.php'Pensei que era algo de permissão mais está tudo liberado 777... estranho..

Acessa essa página ae e me passa o que ela printa na tela, vou montar esse esquema aqui no meu micro para ver o que tá acontecendo!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, dei uma reformulada no codigo.

 

Quando ao erro "Error opening URL 'http://www.onomedomeusite.com.br/menuflash/puxa_categoria.php'" significa que ele não tá conseguindo puxar o .php, portanto, verifique se o endereço está correto.

 

Se estiver, você faz isso:

 

Crie uma layer so para as actions, deixa o mc base na layer de baixo, no primeiro frame das actinos você coloca:

 

 

System.useCodepage=true;var loading:LoadVars = new LoadVars();loading.onLoad = function(sucess:Boolean){_root.catArray =this.categorias.split(",");}loading.load("puxa_categoria.txt"); //lembre-se de colocar o endereço completo

Depois, cria um blankkeyframe no frame 10 (F7), e cole o seguitne codigo:

 

var iniY=0; // valor inicial da altura que vai ficar o primeiro submenuvar dist=5; // distancia entre os submenusfor(i=0;i<catArray.length;i++){   var clip = _root.subBase.duplicateMovieClip("sub"+i,this.getNextHighestDepth());   clip._x= 0 // valor x onde ficarão os submenusclip._y = iniY;iniY+= clip._height+dist;clip.titulo.text = catArray[i];}stop();

Eu testei aqui utilizando um .txt como base de dados, e deu certo!!

Ok?? Caso não consiga resolver o primeiro problema, do carregamento do php, me manda o endereço do teu php, pode passar por MP. Ok??

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aeee agora foi...Muito obrigado cara!!Sem palavras...Agora eu já tenho a base para o que eu preciso...Vou fazer um menu no on rollOver ele abre este menu do lado..Valeu!

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.