<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MXStudio &#187; Leandro_Ferreira</title>
	<atom:link href="http://www.mxstudio.com.br/author/leandro_ferreira/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mxstudio.com.br</link>
	<description>Macromedia e Adobe - Artigos, colunas, tutorias e muito mais...</description>
	<lastBuildDate>Sun, 29 Jan 2012 11:31:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Gráfico de barras dinamico com Action Script</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/flash/grafico_de_barras_dinamico_com_action_script/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/flash/grafico_de_barras_dinamico_com_action_script/#comments</comments>
		<pubDate>Wed, 28 Apr 2004 00:00:00 +0000</pubDate>
		<dc:creator>Leandro_Ferreira</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Um modo f&#225;cil de criar gr&#225;fico de barras dinamicamente com Action Script]]></description>
			<content:encoded><![CDATA[<table border="0" cellspacing="2" cellpadding="2" width="580" align="center">
<tbody>
<tr>
<td>
<p class="texto">No Flashmasters foi perguntado como fazer um gráfico do tipo barra a partir de dados de porcentagem, a pergunta era essa:</p>
<p class="textodiferente">
<p>Como faco pra gerar um grafico apartir de um arquivo txt ???</p>
<p>por exemplo, em um programa ele gera um arquivo txt com a porcentagem de um aluno:</p>
<p>20</p>
<p>50</p>
<p>100</p>
<p class="textodiferente">A partir dai queria gerar um grafico em flash, ou seja o flash lê os valores em txt 20 50 100 e no flash eu gero um grafico com esses valores.</p>
<p>valeuuuu galera</p>
<p>Vinicius</p>
<p>Baseado na minha resposta, resolvi fazer um tutorial, já que achei a resposta simples de se entender e com detalhes importantes pra quem está começando a criar seus scripts em actionscript, quando ele falou em gerar um gráfico, logo pensei em duplicateMovieClip com for. Esse tipo de raciocínio do que usar é adquirido aprendendo o potencial da ferramenta e tendo um pouco de criatividade, não tem segredo. comecei fazendo o seguinte:</p>
<p class="textodiferente">valor = [20, 50, 100]</p>
<p>Isso cria uma matriz com os valores 20, 50 e 100, são os valores que serão utilizados pra fazer a barra, como o arquivo seria carregado de um txt, achei melhor fazer assim:</p>
<p class="textodiferente">valor = &#8220;20 50 100&#8243;</p>
<p>valor = valor.split(&#8221; &#8220;)</p>
<p>Isso faz com que seja necessário puxar apenas uma variável com os valores separados por um espaço, o split separa a string valor a cada espaço (daí que veio o &#8221; &#8221; no parâmetro do split) e cria uma array chamada valor por cima da original com as separações. o resultado de valor, no final das contas, é equivalente ao quando eu criei a array, o próximo passo foi criar o for:</p>
<p class="textodiferente">
<p>valor = &#8220;20 50 100&#8243;</p>
<p>valor = valor.split(&#8221; &#8220;)</p>
<p>for(a=0; a&lt;valor.length;a++) {</p>
<p>}</p>
<p>Com isso criei um loop entre todos os itens da matriz valor. como disse, minha idéia original era usar duplicateMovieClip pra fazer o gráfico, então criei no palco um movieclip com nome de instância &#8220;barra&#8221; e o gráfico da barra, tendo como centro do movieclip o canto inferior esquerdo:</p>
<p><img src="http://www.mxstudio.com.br/imagens_artigos/tutorial/grafico_imagens/001.jpg" alt="" width="355" height="&gt;&lt;/p&gt; &lt;p&gt; O próximo passo foi criar o duplicateMovieClip:&lt;/p&gt; &lt;p class=" /></p>
<p>valor = &#8220;20 50 100&#8243;</p>
<p>valor = valor.split(&#8221; &#8220;)</p>
<p>for(a=0; a&lt;valor.length;a++) {</p>
<p>barra.duplicateMovieClip(&#8220;barra&#8221;+a, a+1)</p>
<p>}</p>
<p>Com isso criei um movieclip a cada item da matriz valor, com nome de insância barra0, barra1.. e nível 1, 2.. depois de criar os movieclips, a próxima coisa a se fazer é deixá-los na posição certa:</p>
<p class="textodiferente">
<p>valor = &#8220;20 50 100&#8243;</p>
<p>valor = valor.split(&#8221; &#8220;)</p>
<p>for(a=0; a&lt;valor.length;a++) {</p>
<p>barra.duplicateMovieClip(&#8220;barra&#8221;+a, a+1)</p>
<p>eval(&#8220;barra&#8221;+a)._x += (barra._width+5)*a</p>
<p>}</p>
<p>O eval serve pra dizer dinamicamente qual o nome de instância do movieclip que quero trabalhar, no caso os movieclips duplicados barra0, barra1.. em cada um deles, defini a posição x como sendo a posição x do movieclip barra mais a largura do movieclip barra mais 5 pixels de distância entre cada barra, tudo isso vezes a variável do for. fazendo as contas, ficaria o 1º movieclip na mesma posição, o 2º à direita com 5 pixels de folga do primeiro, etc. agora falta definir a altura do movieclip de acordo com o valor de porcentagem:</p>
<p class="textodiferente">
<p>valor = &#8220;20 50 100&#8243;</p>
<p>valor = valor.split(&#8221; &#8220;)</p>
<p>for(a=0; a&lt;valor.length;a++) {</p>
<p>barra.duplicateMovieClip(&#8220;barra&#8221;+a, a+1)</p>
<p>eval(&#8220;barra&#8221;+a)._x += (barra._width+5)*a</p>
<p>eval(&#8220;barra&#8221;+a)._yscale = valor[a]</p>
<p>}</p>
<p>Isso define a altura do movieclip em porcentagem (sendo 100% a altura original) do movieclip, cada um de acordo com seu respectivo item da matriz.Por fim, deixo o movieclip barra invisível, já que ele está apenas atrapalhando.</p>
<p class="textodiferente">
<p>valor = &#8220;20 50 100&#8243;</p>
<p>valor = valor.split(&#8221; &#8220;)</p>
<p>for(a=0; a&lt;valor.length;a++) {</p>
<p>barra.duplicateMovieClip(&#8220;barra&#8221;+a, a+1)</p>
<p>eval(&#8220;barra&#8221;+a)._x += (barra._width+5)*a</p>
<p>eval(&#8220;barra&#8221;+a)._yscale = valor[a]</p>
<p>}</p>
<p>barra._visible = false</p>
<p>Assim temos um script simples e dinâmico, com apenas 8 linhas:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="300" height="230" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="high" /><param name="src" value="http://www.mxstudio.com.br/mx_novo/wp-admin/tutorial/grafico_imagens/graficobarras.swf" /><embed type="application/x-shockwave-flash" width="300" height="230" src="http://www.mxstudio.com.br/mx_novo/wp-admin/tutorial/grafico_imagens/graficobarras.swf" quality="high"></embed></object></p>
<p>No próximo tutorial pretendo mostrar como fazer um gráfico tipo pizza.</p>
<p class="TxtNeg">Leandro Menezes Ferreira (Durang).</p>
</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/grafico_de_barras_dinamico_com_action_script/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

