Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, em primeiro lugar devo dizer que o flash não é meu forte, sou mais da área de programação php, dotnet, sql server, mysql etc...
Bom faço alguma coisa em flash mas muito básica e só agora precisei entrar nessa de action scripts pra concluir um projeto pra um cliente e agora to num sufoco e preciso da ajuda dos amigos ai.
Eu tenho um mapa do brasil que está dividido por regiões, NN/CE/MG/SP/RJ/SUL.
1) Cada região é um buttom e se desloca no evento mouseover. - já concluído
2) No evento mouseclick, um retangulo branco de 10px sai do centro para a lateral esquerda aumentando até +/- 250px com altura variavel identificando a região selecionada, com um button close no lado direito e um pequeno texto abaixo. - ja concluído
O mapa todo então é deslocado para o topo da página e reduzido em 50%. - a conlcuir
No quadro branco que se abre na lateral esquerda, devo listar os estados que pertencem àquela região, sendo cada estado um link que deverá apontar para outra caixa no lado direito chamada conteudo que seria os distribuidores daquele estado, mostrando para o usuário, o nome, ender, fone, fax, email e site dos distribuidores do estado selecionado e caso nao haja, uma mensagem tipo 'Nenhum distribuidor na região selecionada, selecione outro estado por favor'.
Estou montando o arquivo xml com os estados de cada região, baseado num script de notiicias que achei na net. Que seria algo parecido com o que está abaixo.
>
<?xml version="1.0" encoding="UTF-8?>
<distribuidores>
<distribuidor regiao="NORTE / NORDESTE">
<![CDATA[<b>DISTRIBUIDOR TAL</b>
ender, cep, cidade, estado
Tel.: xxxxxxxxxx - Fax:xxxxxxxxxxxxxxx
E-mail: xxxx@xxxxx.xxx.xx Site:xxxxx ]]></distribuidor>
</distribuidores>
Acho que poderia melhorar essa estrutura criando tags para o distribuidor, outra pra ender outra, para fone e fax e outra pra email e site, já que estes dois ultimos teriam que ser links, um para o outlook outro para o site do distribuidor
Eu to enroscado exatamente nessa parte de abrir o xml e mostrar. O script nao mostra nada e também não informa qualquer erro.
No primeiro frame estao as regiões que são buttons:
>
stop ();
btNN.onRelease = function () {
gotoAndPlay("showNN");
};
btCE.onRelease = function () {
gotoAndPlay("showCE");
};
btSP.onRelease = function () {
gotoAndPlay("showSP");
};
btRJ.onRelease = function () {
gotoAndPlay("showRJ");
};
btSUL.onRelease = function () {
gotoAndPlay("showSUL");
};
btMG.onRelease = function () {
gotoAndPlay("showMG");
};
Como exemplo o showMG
Ao clicar, faz todos os movimetos descritos acima, abre o quadro conteudo na direita mas nao abre qualquer link é como se não carregasse o arquivo xml.
>
stop ();
btClose.onRelease = function () {
tfConteudo._visible=false;
gotoAndPlay(1);
};
/*
// esse evento funciona para a versão anterior que está publicada no site.
gotoMG.onRelease = function() {
getURL("[http://www.portalridgid.com.br/distribuidores/?pg=2&uf=mg"](http://www.portalridgid.com.br/distribuidores/?pg=2&uf=mg));
};
*/
// cria o objeto xml que vai carregar o arquivo noticias.xml
var noticias:XML = new XML();
// criamos os textfields para exibir as informações
_root.createTextField("tfLista", _root.getNextHighestDepth(), 15, 406, 120, 250);
_root.createTextField("tfConteudo", _root.getNextHighestDepth(), 260, 320, 350, 284);
// formatamos os TextFields
_root.tfLista.border = true
_root.tfLista.background = true;
_root.tfLista.color = 0x000000
_root.tfLista.html = true
_root.tfLista.multiline = true
_root.tfLista.selectable = false
//
_root.tfConteudo.border = true
_root.tfConteudo.background = true;
_root.tfConteudo.color = 0x000000
_root.tfConteudo.html = true
_root.tfConteudo.multiline = true
_root.tfConteudo.wordWrap = true
_root.tfConteudo.selectable = true
//
// configurando o Objto noticias
// dizemos para o objeto noticias ignorar os espacos em branco entre as tags
noticias.ignoreWhite = true;
// definimos o evento que sera disparado quando o objeto noticias terminar de carregar as noticias
noticias.onLoad = function(sucesso:Boolean) {
// se "sucesso" for verdadeiro segnifica que o arquivo foi carregado e podemos mostrar o conteudo dele
if (sucesso) {
listarNoticias();
} else {
// avisa que ocorreu algum erro durante o carregamento
trace("erro ao carregar o arquivo noticias.xml");
}
};
//
// FUNÇÔES
// funcao para mostra a lista de noticias carregadas
function listarNoticias() {
// variavis temporarias
var i:Number = 0;
var titulo:String;
var totalNoticias:Number = noticias.firstChild.childNodes.length;
// definimos como "" o "tfLista" para tirar algum texto que não deva estar ali
_root.tfLista.htmlText = "";
// aqui nos fazemos um looping para colocar os titulos de cada noticia no "tfLista" e definimos o link
while (i<totalNoticias) {
// achamos o titulo na noticia "i"
titulo = noticias.firstChild.childNodes*.attributes.titulo;*
// inserimos no tfNoticias o titulo da noticia "i" com um link para mostrar a noticia
_root.tfLista.htmlText += '<a href="asfunction:mostraNoticia,'+i+'">'+titulo+'</a>\n';
// vamos para a proxima noticia
i++;
}
}
// funcao para mostrar uma noticia selecionada
function mostraNoticia(i:Number) {
var titulo:String;
var conteudo:String;
* titulo = noticias.firstChild.childNodes**.attributes.titulo;*
* conteudo = noticias.firstChild.childNodes**.firstChild.nodeValue;*
// Mostramos a noticia
tfConteudo.htmlText = '<b>'+titulo+'</b><br><br>'+conteudo;
}
//
// carregamos o arquivo noticias.xml
noticias.load("noticias.xml");
Agora o mais estranho é que esse script ai funciona sozinho
Outras dúvidas:
Eu poderia carregar o xml logo no primeiro frame, tanto os dados carregados como os textfields criados estariam disponiveis nos demais frames?
Se sim, eu poderia colocar somente o metodo pra visualizar os dados em frame de controle de cada região.
Carregando comentários...