Camf 0 Denunciar post Postado Julho 12, 2009 Boa noite! Fiz um script para que o Flash leia um XML que contém o artista e a música que estão tocando e passe essas informações via loadvars para um servidor. Até aí tudo funcionando, mas quero que ele só atualize se o título da música mudar. Tentei com o código abaixo, mas ele está atualizando sempre, com o título igual ou não: System.useCodepage = true; var arquivo:XML = new XML(); function atualiza() { //Chama o XML arquivo.load("pulsar.xml"); arquivo.ignoreWhite = true; arquivo.onLoad = function() { //trace(this.childNodes[0].childNodes[1].childNodes[0].childNodes); //trace(this.childNodes[0].childNodes[1].childNodes[1].childNodes); var artista = this.childNodes[0].childNodes[1].childNodes[0].childNodes; var titulo = this.childNodes[0].childNodes[1].childNodes[1].childNodes; tocando.text = artista+" - "+titulo; //Envia as variáveis para o servidor var lv:LoadVars = new LoadVars(); var recebe:LoadVars = new LoadVars(); lv.artist = artista; lv.title = titulo; lv.songtype = "S" lv.duration = "220000" //Envia para o servidor somente se o título da música mudou if(titulo != tituloenviado){ lv.sendAndLoad("http://10.0.0.17:8181/",recebe,"GET"); trace("atualizou"); tituloenviado = titulo; } } // Fecha a função atualiza } setInterval(atualiza,2000) O que pode estar acontecendo? Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 12, 2009 System.useCodepage = true; var arquivo:XML = new XML(); function atualiza() { //Chama o XML arquivo.load("pulsar.xml"); arquivo.ignoreWhite = true; arquivo.onLoad = function() { //trace(this.childNodes[0].childNodes[1].childNodes[0].childNodes); //trace(this.childNodes[0].childNodes[1].childNodes[1].childNodes); var artista = this.childNodes[0].childNodes[1].childNodes[0].childNodes; var titulo = this.childNodes[0].childNodes[1].childNodes[1].childNodes; tocando.text = artista+" - "+titulo; //Envia as variáveis para o servidor var lv:LoadVars = new LoadVars(); var recebe:LoadVars = new LoadVars(); lv.artist = artista; lv.title = titulo; lv.songtype = "S" lv.duration = "220000" //Envia para o servidor somente se o título da música mudou if(titulo != tituloenviado){ lv.sendAndLoad("http://10.0.0.17:8181/",recebe,"GET"); trace("atualizou"); tituloenviado = titulo; } } // Fecha a função atualiza } setInterval(atualiza,2000) Ta faltando a function atualiza ai ta não??????? function atualiza(){ bla bla bla } E talvez um recebimento de informações do banco... recebe.onLoad = function(){ //novas informações} Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Camf 0 Denunciar post Postado Julho 12, 2009 Olá berseck, a função atualiza tá pegando todo o código, e o recebe que eu usei foi só pra poder usar o sendAndLoad e não abrir uma janela no browser, pois vou usar isso num EXE. As informações que eu envio via LoadVars vem desse XML pulsar.xml, que é atualizado pelo programa de músicas. Compartilhar este post Link para o post Compartilhar em outros sites
ZKdesign 0 Denunciar post Postado Julho 12, 2009 Camf precisa ter esse XML? Você poderia puxar essas informações direto do arquivo da musica que estiver sendo executada com o metodo Sound.ID3 que permite acesso a diversos dados do arquivo da musica, no seu caso, seria sound.ID3.TCOM para acessar o nome do autor e sound.ID3.TIT2 para acessar o titulo da música, mas da uma pesquisada no help do flash que tem a lista completa das informações que ele pode buscar de dentro do arquivo. Espero ter ajudado! Compartilhar este post Link para o post Compartilhar em outros sites
Camf 0 Denunciar post Postado Julho 12, 2009 Ola, é que o flash não está tocando um MP3 diretamente, é um programa de automação de rádios que toca a música e envia para esse XML. Compartilhar este post Link para o post Compartilhar em outros sites
ZKdesign 0 Denunciar post Postado Julho 12, 2009 Entendi, nesse caso não tem como fazer dessa maneira. Mas voltando a sua dúvida, será que um enterFrame com um if consultando se o titulo foi alterado para somente ai disparar a função caso tenha sido alterado e atualizar, talves resolva o problema. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 12, 2009 Desculpa, Não havia reparado que era a função toda. Então nesse caso não vai funcionar mesmo, pois aqui: var artista = this.childNodes[0].childNodes[1].childNodes[0].childNodes; var titulo = this.childNodes[0].childNodes[1].childNodes[1].childNodes; Você fica sempre chamando o mesmo valor!!! não improta quantas vezes você atualize quando passar por essa regra vai sempre repetir o mesmo valor no artista!!! Crie um contador que mude e seja variavel... estilo: var artista = this.childNodes[0].childNodes[i].childNodes[0].childNodes; var titulo = this.childNodes[0].childNodes[i].childNodes[1].childNodes;Onde o i vai ser o contador no qual é a musica que está sendo tocada! Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Samuka Mundial 0 Denunciar post Postado Maio 20, 2011 Meus amigos, alguem poderia me fornecer esta ferramenta para ler os arquivos XML do pulsar no site da rádio? email samuelalex1@hotmail.com Compartilhar este post Link para o post Compartilhar em outros sites