Ir para conteúdo

POWERED BY:

Arquivado

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

Juliano.net

Criar lista com bullets (imagem) dinamicamente

Recommended Posts

Galera, como que eu faço para ler um arquivo XML e carregar os itens dele para uma lista que ficará em uma determinada posição do meu filme, sendo que cada item ficará em uma linha e com um marcador (bullet)?Como vou carregar os itens de um arquivo XML, preciso que isto seja dinâmico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antônio, o XML será gerado por uma página ASP. Terá uma estrutura como essa:

 

<cursos><item>Access</item><item>Excel</item><item>Flash</item><item>Java</item><item>.Net</item></cursos>

Daí eu preciso colocar cada item em uma linha e do lado direito deles um marcador (bullet).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode criar um DynamicText e abilitar o HTML (símbolo no painel properties: <>). Aí você usa o <ul> para criar os bullets:

 

/**************************   Criando o TextField**************************/_root.createTextField("teste_txt", 1, 20, 20, 200, 400);teste_txt.html = true;teste_txt.multiline = true;teste_txt.autoSize = true;/**************************	Carregando XML**************************/var cursosXML:XML = new XML();cursosXML.ignoreWhite = true;//ignorando quebras de linhacursosXML.onLoad = function(success) {	if (success) {		var qtsItens:Number = cursosXML.firstChild.childNodes.length;//quantos itens existem		teste_txt.htmlText = "<ul>";		for (var i = 0; i < qtsItens; i++) {			//o firstChild acessa o que está dentro de <cursos> e o childNodes[] pega o texto dentro dos nós			teste_txt.htmlText += "<li>" + cursosXML.firstChild.childNodes[i] + "</li>";		}		teste_txt.htmlText += "</ul>";	} else {		teste_txt.text = "Houve um problema no carregamento";	}};cursosXML.load("cursos.xml");

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, Antonio, muito obrigado.Só mais uma pergunta, tem como eu através desse código criar instâncias de uma imagem para que ela sirva como o bullet?Ah, outra coisa, tem como usar CSS nas TAGs HTML que eu colocar no código?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem como usar CSS sim, mas é mais restrito. Procure no F1 do Flash quais são as propriedades suportadas.

Para usar bullets personalizados tem que criar um mc e nas suas propriedades em Linkage marque:

 

- Export for ActionScript

- Export in first frame

- Identifier: bullet

 

Agora juntando o CSS e o bullet:

 

font.css

.font {	color: #006699;}

Action Script

/**************************	Carregando CSS**************************/import TextField.StyleSheet;var fontCSS:StyleSheet = new StyleSheet();fontCSS.onLoad = function(success) {	if (!success) {		teste_txt.text = "Houve um problema no carregamento";	}};fontCSS.load("font.css");/**************************   Criando o TextField**************************/_root.createTextField("teste_txt", 1, 20, 20, 200, 400);teste_txt.html = true;teste_txt.multiline = true;teste_txt.autoSize = true;teste_txt.styleSheet = fontCSS;/**************************	Carregando XML**************************/var cursosXML:XML = new XML();cursosXML.ignoreWhite = true;//ignorando quebras de linhacursosXML.onLoad = function(success) {	if (success) {		var qtsItens:Number = cursosXML.firstChild.childNodes.length;		//quantos itens existem		teste_txt.htmlText = "<p class='font'>";		for (var i = 0; i < qtsItens; i++) {			//o firstChild acessa o que está dentro de <cursos> e o childNodes[] pega o texto dentro dos nós			teste_txt.htmlText += cursosXML.firstChild.childNodes[i]+"<br>";			//colocando os bullets			_root.attachMovie("bullet", "bullet"+i, (i+2));			//os Números '5', '8' e '16' variam dependendo do tamanho da fonte e do bullet			_root["bullet"+i]._x = teste_txt._x - 5;			_root["bullet"+i]._y = teste_txt._y + 8 + (i*16);		}		teste_txt.htmlText += "</p>";	} else {		teste_txt.text = "Houve um problema no carregamento";	}};cursosXML.load("cursos.xml");

Abraço

 

(olha, até que deu um tuto legalzinho... :D )

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.