Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite,
Atualmente possuo um sistema de banner que busca os dados em um arquivo XML e monta uma matriz com todas as informações. Buscando melhorias, resolvi incrementar o banner colocando um "MC" para receber uma "URL" e assim poder abrir o endereço da "promoção" exibida. Enfim, querendo melhorar as coisas, acabei arrumando duas dores de cabeça!
Como dito acima, crio uma Matriz com as informações vindas do XML. Destas informações (Ilustração/Endereço/Descrição), somente a Ilustração é obrigatória, o Endereço e a Descrição são opcionais. Após montar tudo eu testei com o trace e todos os campos, inclusive os em branco foram importados com sucesso!
total = Arquivo_Importado.firstChild.childNodes.length;
for (i=0; i<total; i++)
{
banner[i] = new Array();
banner[i]['arquivo'] = Arquivo_diretorio+Arquivo_Importado.firstChild.childNodes[i].attributes.arquivo;
banner[i]['endereco'] = Arquivo_Importado.firstChild.childNodes[i].attributes.endereco;
banner[i]['descricao'] = Arquivo_Importado.firstChild.childNodes[i].childNodes[0].nodeValue;
}
O processo de exibição é bem parecido, o que muda é quem receberá os dados, dessa vez os objetos do banner! Devido a essa condição, a propaganda que não tiver a descrição ou endereço cadastrado, terá área de destino aquela informação oculta e a célula da matriz ignorada.
mc_loader.loadClip(banner[contador]['arquivo'], banner_palco);
if(banner[contador]['descricao'].length != 0)
{
banner_descricao.text = banner[contador]['descricao'];
banner_descricao._visible = true;
}
else
{
banner_descricao.text = "";
banner_descricao._visible = false;
}
if(banner[contador]['endereco'].length != 0)
{
banner_area.onPress = function(){ getURL(banner[contador]['endereco'], "_self"); }
}
else
{
banner_area.onPress = null;
}
Vamos a pratica! Imagine que temos 3 registros no arquivo XML, desses 3, os dois primeiros estão sem informação no campo de descrição e no de endereço.
<?xml version="1.0" encoding="UTF-8"?>
<BANNER>
<item arquivo="06052010014104FOTO1.JPG" endereco="1.html"><![CDATA[]]></item>
<item arquivo="06052010010425FOTO1.JPG" endereco=""><![CDATA[2]]></item>
<item arquivo="17022011183139FOTO1.JPG" endereco="3.html"><![CDATA[3]]></item>
<item arquivo="17022011010225FOTO1.JPG" endereco="4.html"><![CDATA[4]]></item>
</BANNER>
Ao executar o aplicativo, o "Trace" do "Flash" identifica o conjunto de dados em perfeita formação.
** Dados do XML - Banner 0 de 1
** Arquivo: 06052010014104FOTO1.JPG
** Endereço: 1.html
** Descrição:
** Dados do XML - Banner 1 de 2
** Arquivo: 06052010010425FOTO1.JPG
** Endereço:
** Descrição: 2
** Dados do XML - Banner 2 de 3
** Arquivo: 17022011183139FOTO1.JPG
** Endereço: 3.html
** Descrição: 3
** Dados do XML - Banner 3 de 4
** Arquivo: 17022011010225FOTO1.JPG
** Endereço: 4.html
** Descrição: 4
Durante a execução do aplicativo, o "Flash" exibiu cada Descrição em sua devida Propaganda, ou seja, durante a primeira chamada não foi exibido nenhum texto, na segunda chamada foi exibido o segundo texto, na terceira chamada foi exibido o terceiro texto e assim prosseguiu! Independente da ordem que for, sempre foi respeitada a ordem de cada descrição e sua propaganda!
O problema apareceu com a exibição do endereço/link. Quando o aplicativo chegava em uma propaganda que não havia link, mesmo com a validação ele pulava para a próxima célula e pegava o valor, ou seja, durante a primeira chamada foi exibido o primeiro link, na segunda chamada não houve link, na terceira chamada foi exibido o quarto link e a quarta chamada foi exibido "undefined". Caso eu preencha todos os dados do XML, o aplicativo exibe todos os dados na ordem certa e sem nenhum problema! Alguém sabe o que está gerando isso e como posso resolver?
abraços
Carregando comentários...