<?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/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Wii are Nerds &#187; Coding</title>
	<atom:link href="http://blog.wiiarenerds.com.br/tag/coding/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.wiiarenerds.com.br</link>
	<description>Tudo o que você sempre quis saber sobre jogos</description>
	<lastBuildDate>Sun, 01 Jan 2012 23:17:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<copyright>2009 </copyright>
	<managingEditor>bruno.leles86@gmail.com (Wii are Nerds)</managingEditor>
	<webMaster>bruno.leles86@gmail.com (Wii are Nerds)</webMaster>
	<ttl>1440</ttl>
	<image>
		<url>http://blog.wiiarenerds.com.br/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
		<title>Wii are Nerds</title>
		<link>http://blog.wiiarenerds.com.br</link>
		<width>144</width>
		<height>144</height>
	</image>
	<itunes:subtitle></itunes:subtitle>
	<itunes:summary>Blog sobre tecnologia e tudo o que um nerd adora saber</itunes:summary>
	<itunes:keywords></itunes:keywords>
	<itunes:category text="Technology" />
	<itunes:category text="Technology">
		<itunes:category text="Podcasting" />
	</itunes:category>
	<itunes:category text="Technology">
		<itunes:category text="Tech News" />
	</itunes:category>
	<itunes:author>Wii are Nerds</itunes:author>
	<itunes:owner>
		<itunes:name>Wii are Nerds</itunes:name>
		<itunes:email>bruno.leles86@gmail.com</itunes:email>
	</itunes:owner>
	<itunes:block>no</itunes:block>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://blog.wiiarenerds.com.br/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<item>
		<title>PHP Orientado a Objeto, Segunda Parte.</title>
		<link>http://blog.wiiarenerds.com.br/2008/10/20/php-orientado-a-objeto-segunda-parte/</link>
		<comments>http://blog.wiiarenerds.com.br/2008/10/20/php-orientado-a-objeto-segunda-parte/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 01:36:00 +0000</pubDate>
		<dc:creator>GuZ</dc:creator>
				<category><![CDATA[Nerd]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[orientação a objeto]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://blog.wiiarenerds.com.br/2008/10/20/php-orientado-a-objeto-segunda-parte/</guid>
		<description><![CDATA[Como eu prometi no post anterior, vou colocar aqui no Wii Are Nerds a segunda parte do tutorial sobre como “brincar” de orientação a objetos com PHP. Subclasses: Uma classe pode trabalhar com uma extensão, herdando assim todas as variáveis e funções da classe-pai. No PHP não é permitido uma herança múltipla, ou seja, a [...]


Nenhum post relacionado.]]></description>
			<content:encoded><![CDATA[<p>Como <a href="http://guz.oxenti.com/">eu</a> prometi no post anterior, vou colocar aqui no <a href="http://blog.wiiarenerds.com.br/">Wii Are Nerds</a> a segunda parte do tutorial sobre como “brincar” de orientação a objetos com PHP. </p>
<p><strong>Subclasses:</strong></p>
<p>Uma classe pode trabalhar com uma extensão, herdando assim todas as variáveis e funções da classe-pai. No PHP não é permitido uma herança múltipla, ou seja, a classe-filha só pode ter um pai ou simplificando uma classe pode ser extensão de apenas UMA outra classe.</p>
<p>Código:</p>
<ol>
<li><font color="#464a4c">class novaconta extends conta{</font> </li>
<li><font color="#464a4c">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; var $num;</font> </li>
<li><font color="#464a4c">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; function vernum(){</font> </li>
<li><font color="#464a4c">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return $this-&gt;num;</font> </li>
<li><font color="#464a4c">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</font> </li>
<li><font color="#464a4c">}</font> </li>
</ol>
<p>A classe que eu mostrei agora tem origem na classe do exemplo anterior ela tem todas as variáveis, todas as funções da classe anterior e ainda ganhou a variável <em>$num</em> e a função <em>vernum().</em></p>
<p>No mundo real, poderíamos pegar uma impressora e utiliza-la como exemplo:</p>
<ol>
<li><font color="#464a4c">class impressora {</font> </li>
<li><font color="#464a4c">&#160;&#160;&#160;&#160;&#160; $var cartucho;</font> </li>
<li><font color="#464a4c">&#160;<font color="#464a4c">&#160;&#160;&#160;&#160;&#160; </font>$var tinta;</font> </li>
<li><font color="#464a4c">…</font> </li>
<li><font color="#464a4c">&#160;&#160;&#160;&#160;&#160; </font><font color="#464a4c">function imprimir()</font> </li>
<li><font color="#464a4c">&#160;&#160;&#160;&#160;&#160; </font><font color="#464a4c">{</font> </li>
<li><font color="#464a4c">&#160;&#160;&#160;&#160;&#160; </font><font color="#464a4c">}</font> </li>
<li><font color="#464a4c">}</font> </li>
<li><font color="#464a4c">class multifuncional extends impressora {</font> </li>
<li>&#160;&#160;&#160;&#160; $var copiadora; </li>
<li>&#160;&#160;&#160;&#160; … </li>
<li>&#160;&#160;&#160;&#160; function scan() </li>
<li>&#160;&#160;&#160;&#160; { </li>
<li>&#160;&#160;&#160;&#160; } </li>
<li>&#160;&#160;&#160;&#160; </li>
<li>&#160;&#160;&#160; function copiar() </li>
<li>&#160;&#160; {&#160;&#160; </li>
<li>&#160;&#160;&#160; </li>
<li>&#160; } </li>
<li>} </li>
</ol>
<p>É bom lembrar que o PHP trabalha de forma estruturada, ou seja, ele lê o código de cima para baixo. Então é bom ver a ordem em que as classes são criadas.</p>
<p>As Classes precisam ser criadas ANTES de serem usadas, por exemplo, se eu tivesse colocado uma chamada para a função imprimir() na primeira linha do código, o PHP não encontraria minha impressora.</p>
<p>(obs&#8230; o exemplo da impressora é apenas para facilitar a abstração) </p>
<p><strong>Construtores:</strong></p>
<p>Um construtor é uma função que é chamada automaticamente quando a classe é definida pelo operador <em>new</em>. e deve ter o mesmo nome da classe que ele pertence:</p>
<ol>
<li><font color="#464a4c">class conta{</font> </li>
<li><font color="#464a4c">&#160;&#160;&#160; var $saldo;</font> </li>
<li><font color="#464a4c">function conta()</font> </li>
<li><font color="#464a4c">{</font> </li>
<li><font color="#464a4c">&#160;&#160;&#160; $this-&gt;saldo = 100000000 # Queria que o Banco do Brasil tivesse feito isso qdo eu abri minha conta :P</font> </li>
<li><font color="#464a4c">}</font> </li>
<li><font color="#464a4c">function ver()</font> </li>
<li><font color="#464a4c">{</font> </li>
<li><font color="#464a4c">….</font> </li>
<li><font color="#464a4c">}^</font> </li>
<li>} </li>
</ol>
<p>Vejam que eu resumi o código (para o post não ficar muito grande).</p>
<p>Agora nosso banco tem uma função que adiciona R$ 100.000.000,00 no saldo de uma conta quando ela é criada. Tudo isso foi definido na função <em>conta(). </em>O mais interessante é que os construtores suportam argumentos, o que torna este recurso muito mais interessante.</p>
<p>É importante ressaltar que embora os valores sejam herdados, o construtor da classe pai não é iniciado quando se chama um operador da classe-filha.</p>
<p>Bom, minha introdução a Orientação a Objeto fica por aqui, e agora cabe a você desenvolver seus programas orientados a objeto utilizando a linguagem PHP.</p>
<p><strong>Algumas ferramentas para desenvolver em PHP usando Orientação a Objeto:</strong></p>
<p><font color="#000000">ZendStudio: Para quem está programando em PHP e precisa usar OO, o Zend Studio é a melhor ferramenta que eu conheço para programar. O Problema é que eu não encontrei ele disponível para compra no Brasil.</font></p>
<p><font color="#000000">Zend Framework. Pra que ficar reinventando a roda? Use o framework ZEND e facilite seu trabalho. ;-). </font></p>
<p><font color="#000000"></font></p>


<p>Nenhum post relacionado.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.wiiarenerds.com.br/2008/10/20/php-orientado-a-objeto-segunda-parte/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tirando a aplicação da barra de tarefas no Delphi 2007 ou mais novo</title>
		<link>http://blog.wiiarenerds.com.br/2008/09/22/tirando-a-aplicacao-da-barra-de-tarefas-no-delphi-2007-ou-mais-novo/</link>
		<comments>http://blog.wiiarenerds.com.br/2008/09/22/tirando-a-aplicacao-da-barra-de-tarefas-no-delphi-2007-ou-mais-novo/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 04:13:30 +0000</pubDate>
		<dc:creator>Naftali</dc:creator>
				<category><![CDATA[Nerd]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Delphi 2009]]></category>
		<category><![CDATA[Object Pascal]]></category>

		<guid isPermaLink="false">http://blog.wiiarenerds.com.br/?p=353</guid>
		<description><![CDATA[Olá pessoal, ultimamente estive trabalhando em um projeto novo que, por fim, resolvi desenvolver na versão mais nova do Delphi. Até o fim estava dando tudo certo, até que precisei fazer uma coisa: Tirar a aplicação da barra de tarefas. Bom, até a versão 2006 do Delphi, essa era uma tarefa simples, bastava colocar o [...]


Nenhum post relacionado.]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal, ultimamente estive trabalhando em um projeto novo que, por fim, resolvi desenvolver na versão mais nova do Delphi. Até o fim estava dando tudo certo, até que precisei fazer uma coisa: Tirar a aplicação da barra de tarefas.</p>
<p>Bom, até a versão 2006 do Delphi, essa era uma tarefa simples, bastava colocar o seguinte código no evento OnCreate:</p>
<pre lang="pascal">ShowWindow(Application.Handle, SW_HIDE) ;
SetWindowLong(Application.Handle, GWL_EXSTYLE, getWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW) ;
ShowWindow(Application.Handle, SW_SHOW) ;</pre>
<p>Pois bem, fui tentar fazer o mesmo e a aplicação continuava lá, quebrei a cabeça para descobrir o problema. Até que, navegando pela internet, descobri que a partir da versão 2007 do Delphi (e do C++ Builder), a Classe TApplication possui uma propriedade chamada MainFormOnTaskbar.</p>
<p>O que ela faz? </p>
<p>A princípio, essa propriedade tem o valor true, que significa que o botão na barra de tarefas representa o form principal, e leva consigo o título do mesmo. Mas, quando setada para false, ele representa uma janela escondida da aplicação e leva o título da aplicação e não do form. Essa janela escondida foi usada até a versão 2006 para gerenciar as janelas da aplicação, a partir da versão 2007 isso mudou. Por isso essa propriedade existe, ou seja, para manter compatibilidade com projetos desenvolvidos em versões antigas, tanto que, ao importar um projeto desenvolvido no Delphi 2006 ou menor, essa propriedade fica false.</p>
<p>Então, para poder ter o efeito desejado (que era sumir com a aplicação da barra de tarefas), é necessário mudar a propriedade para false (no arquivo .dpr, logo abaixo de Application.Initialize), e então colocar o seguinte código no evento OnShow e no OnActivate do form principal:</p>
<pre lang="pascal">ShowWindow(Application.Handle, SW_HIDE);</pre>
<p>E está feito, sua aplicação não mais aparecerá na barra. </p>


<p>Nenhum post relacionado.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.wiiarenerds.com.br/2008/09/22/tirando-a-aplicacao-da-barra-de-tarefas-no-delphi-2007-ou-mais-novo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Há coisas que nem Freud explica</title>
		<link>http://blog.wiiarenerds.com.br/2008/08/23/ha-coisas-que-nem-freud-explica/</link>
		<comments>http://blog.wiiarenerds.com.br/2008/08/23/ha-coisas-que-nem-freud-explica/#comments</comments>
		<pubDate>Sat, 23 Aug 2008 04:13:34 +0000</pubDate>
		<dc:creator>Naftali</dc:creator>
				<category><![CDATA[Rapidinhas]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Nerd]]></category>

		<guid isPermaLink="false">http://blog.wiiarenerds.com.br/?p=220</guid>
		<description><![CDATA[Pois bem, estava eu, programando como sempre, quando percebi que meu programa começou a dar alguns erros estranhos. Ao estudar os parâmetros vi que tudo estava correto. Mas mesmo assim o programa insistia em fazer o contrário do que imaginava. Então resolvi dar a minha última cartada: Depurar o código com nosso querido break-point (pode [...]


Nenhum post relacionado.]]></description>
			<content:encoded><![CDATA[<p>Pois bem, estava eu, programando como sempre, quando percebi que meu programa começou a dar alguns erros estranhos. Ao estudar os parâmetros vi que tudo estava correto. Mas mesmo assim o programa insistia em fazer o contrário do que imaginava.</p>
<p>Então resolvi dar a minha última cartada: Depurar o código com nosso querido break-point (pode parecer estranho, mas eu tento evitar o break-point. Uso apenas quando o caso é supremo, como esse).</p>
<p>Pois é, ao depurar o código eu vi realmente que o programa estava entrando na condição contrária a que imaginava para aquela situação. Verifiquei os dados de entrada e estavam todos corretos.</p>
<p>- <span style="text-decoration: line-through;">Caralho</span> piii, o que tá acontecendo aqui? &#8211; Pensei comigo mesmo já na fúria.</p>
<p>Pois então resolvi ver qual era o real valor que estava dando a condição. Acredita que era verdadeiro? E mesmo assim entrava no else? Não acredita? Veja com seus próprios olhos!</p>
<p><a href="http://blog.wiiarenerds.com.br/wp-content/uploads/2008/08/pau_no_if2.png"><img class="aligncenter size-full wp-image-219" title="pau_no_if2" src="http://blog.wiiarenerds.com.br/wp-content/uploads/2008/08/pau_no_if2.png" alt="" width="500" height="123" /></a></p>
<p>Eae, algum palpite?</p>


<p>Nenhum post relacionado.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.wiiarenerds.com.br/2008/08/23/ha-coisas-que-nem-freud-explica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trabalhando com registro do Windows, eca</title>
		<link>http://blog.wiiarenerds.com.br/2008/08/03/trabalhando-com-registro-do-windows-eca/</link>
		<comments>http://blog.wiiarenerds.com.br/2008/08/03/trabalhando-com-registro-do-windows-eca/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 01:47:05 +0000</pubDate>
		<dc:creator>Naftali</dc:creator>
				<category><![CDATA[Nerd]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.wiiarenerds.com.br/?p=180</guid>
		<description><![CDATA[Alguém aqui acha que o registro do Windows é uma zona desorganizado? Pois é, eu apoio sua idéia e a endorso com o seguinte fato: Estou trabalhando com uma aplicação que, dentre outras coisas, muda o papel de parede do windows. Pois bem, comecei a pesquisar e descobri que mudar o endereço da imagem no [...]


Nenhum post relacionado.]]></description>
			<content:encoded><![CDATA[<p>Alguém aqui acha que o registro do Windows é <span style="text-decoration: line-through;">uma zona</span> desorganizado?</p>
<p>Pois é, eu apoio sua idéia e a endorso com o seguinte fato:</p>
<p>Estou trabalhando com uma aplicação que, dentre outras coisas, muda o papel de parede do windows. Pois bem, comecei a pesquisar e descobri que <a href="http://blog.wiiarenerds.com.br/2008/07/30/manipulando-registro-em-c/">mudar o endereço da imagem no registro diretamente</a>, apesar de funcional, não atualiza a sua área de trabalho, sendo necessário o usuário ou reiniciar o computador, ou mandar aplicar o papel de parede pelo utilitário do windows mesmo.</p>
<p>Não era bem esse efeito que eu queria, então descobri que com a <a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=237633&amp;SiteID=1">API do windows eu posso ter o efeito que quero</a>. Lindo! Porém tem um problema: Em que lugar que eu passo parâmetro para o tipo de papel de parede (centralizado, esticado e lado-a-lado)? Pois é, não é pela API.</p>
<p>Ao pesquisar pela internet, descobri que existem dois parâmetros no registro (HKCU\Control Panel\Desktop), chamados WallpaperStyle e TileWallpaper. Sim, não é em um lugar que você muda o tipo, mas em dois (como se fosse possível ter dois estilos ao mesmo tempo, mas tudo bem). Só que pior do que isso é o valor necessário para cada configuração. Vejam:</p>
<ul>
<li>Esticado: WallpaperStyle = 2 e TileWallpaper = 0</li>
<li>Centralizado: WallpaperStyle = 0 e TileWallpaper = 0</li>
<li>Lado a Lado: WallpaperStyle = 0 e TileWallpaper = 1</li>
</ul>
<p>Primeiro: Não seria mais fácil criar uma propriedade apenas, que varie entre 0, 1 e 2?</p>
<p>Segundo: Alguém por favor me explique, por que esses valores têm que estar escritos como STRING? Onde já se viu valores inteiros (que nesse caso poderiam até ser booleanos) serem guardados como string? (Eu tentei, se escrever como inteiro ele desconsidera os valores e joga apenas centralizado).</p>
<p>Agora convenhamos, o Windows é ou não é uma colcha de retalhos?</p>


<p>Nenhum post relacionado.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.wiiarenerds.com.br/2008/08/03/trabalhando-com-registro-do-windows-eca/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Manipulando registro em C</title>
		<link>http://blog.wiiarenerds.com.br/2008/07/30/manipulando-registro-em-c/</link>
		<comments>http://blog.wiiarenerds.com.br/2008/07/30/manipulando-registro-em-c/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 03:16:07 +0000</pubDate>
		<dc:creator>Naftali</dc:creator>
				<category><![CDATA[Nerd]]></category>
		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://blog.wiiarenerds.com.br/?p=164</guid>
		<description><![CDATA[Olá, para iniciar meus posts na categoria Coding, vou ensinar como abrir chaves e escrever valores no registro. É uma aplicação bem simples que utiliza a API do windows. Nessa aplicação eu vou mostrar como fazer para trocar o papel de parede do windows (Lembrando que quando se escreve o endereço do papel de parede [...]


Nenhum post relacionado.]]></description>
			<content:encoded><![CDATA[<p>Olá, para iniciar meus posts na categoria Coding, vou ensinar como abrir chaves e escrever valores no registro. É uma aplicação bem simples que utiliza a API do windows.</p>
<p>Nessa aplicação eu vou mostrar como fazer para trocar o papel de parede do windows (Lembrando que quando se escreve o endereço do papel de parede manualmente no registro é preciso reiniciar o computador para aplicar).</p>
<pre lang="c">#include &lt; windows.h &gt;
#include &lt; stdio.h &gt;
#include &lt; conio.h &gt;
#include &lt; strings.h &gt;

#define MAX_STRING 250

/*
	Essa aplicação tem como finalidade demonstrar algumas formas de manipular
	o registro do windows. Nesse exemplo, vamos mudar o papel de parede do
	usuário atual

	Aplicação criada por: Naftali Andrade Santos
	Site: blog.wiiarenerds.com.br
*/
main()
{
	// variável que vai conter o caminho para a imagem que vai ser o papel de
	// parede
	char caminho[MAX_STRING];
	// Essa variável vai conter o endereço de memória para a chave que foi
	// aberta
	HKEY chave;

	printf("Digite o caminho para a imagem: ");
	gets(caminho);

	// Vamos abrir a chave que precisamos
	if(RegOpenKey(HKEY_CURRENT_USER, "Control Panel\\Desktop", &#038;chave) != 0)
		printf("Problemas ao abrir a chave, verifique se ela realmente existe");
	else
	{
		printf("Chave aberta com sucesso");
		// Depois de aberta vamos manipular algumas informações nela
		if(RegSetValueEx(chave, "WallPaper", 0, REG_SZ, (LPBYTE)caminho, strlen(caminho)) != 0)
		   printf("\nOcorreu um erro ao escrever o valor!");
		else
		   printf("\nValor escrito corretamente!");
	}

	// Lembre-se de fechar a chave
	RegCloseKey(chave);

	printf("\nPressione qualquer tecla para continuar");
	getch();
}</pre>
<p>Link para o código-fonte: <a href="http://blog.wiiarenerds.com.br/wp-content/uploads/2008/07/registro.cpp">Registro &#8211; Source</a><br />
Link para o executável: <a href="http://blog.wiiarenerds.com.br/wp-content/uploads/2008/07/registro.exe">Registro &#8211; Executável</a></p>
<p>PS.: Esse post foi criado para responder a dúvida presente no forum Ajuda na Web. Segue o link: <a href="http://www.ajudanaweb.com/index.php?showtopic=427">http://www.ajudanaweb.com/index.php?showtopic=427</a></p>


<p>Nenhum post relacionado.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.wiiarenerds.com.br/2008/07/30/manipulando-registro-em-c/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Menu hold state</title>
		<link>http://blog.wiiarenerds.com.br/2008/07/29/menu-hold-state/</link>
		<comments>http://blog.wiiarenerds.com.br/2008/07/29/menu-hold-state/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 01:13:26 +0000</pubDate>
		<dc:creator>Bruno Leles</dc:creator>
				<category><![CDATA[Nerd]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash | ActionScript]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://blog.wiiarenerds.com.br/?p=152</guid>
		<description><![CDATA[No forum Ajuda na Web, onde eu modero a seção de Flash / ActionScrip, surgiu um post em que me perguntaram se eu tinha um source de exemplo sobre a explicação que eu havia dado. Pensei então: &#8220;Acho que é um bom começo para a seção coding do blog. E ainda soluciono o problema dele&#8221;. [...]


Nenhum post relacionado.]]></description>
			<content:encoded><![CDATA[<p>No forum Ajuda na Web, onde eu modero a seção de Flash / ActionScrip, surgiu um post em que me perguntaram se eu tinha um source de exemplo sobre a explicação que eu havia dado. Pensei então: &#8220;Acho que é um bom começo para a seção coding do blog. E ainda soluciono o problema dele&#8221;. Posto isso, resolvi fazer esse post.</p>
<p>Não é algo muito complicado, mas é bastante comum em sites em flash esse tipo de menu, onde o botão ao ser &#8216;clicado&#8217; mantem o estado ativo, o resultado final será algo assim:</p>
<p><a href="http://blog.wiiarenerds.com.br/wp-content/uploads/2008/07/hold_state_menu.swf">hold_state_menu</a></p>
<p><em>Nesse post vou focar somente na função do menu, para não deixar o post cansativo&#8230; let&#8217;s have some fun =D<br />
</em></p>
<p>Crie um novo documento no Flash, para ActionScript 2.0 e vá em <em>Modify -&gt; Document</em> e configure ele como na figura abaixo:</p>
<p style="text-align: center;"><a href="http://blog.wiiarenerds.com.br/wp-content/uploads/2008/07/create_document.jpg"><img class="alignnone size-medium wp-image-156 aligncenter" title="create_document" src="http://blog.wiiarenerds.com.br/wp-content/uploads/2008/07/create_document-300x272.jpg" alt="" width="300" height="272" /></a></p>
<p style="text-align: left;">Então, nesse documento, crie um novo MovieClip (<em>Insert -&gt; New Symbol </em>) com o nome de <strong>Menu:</strong></p>
<p style="text-align: center;"><a href="http://blog.wiiarenerds.com.br/wp-content/uploads/2008/07/create_movie_menu.jpg"><img class="aligncenter size-medium wp-image-158" title="create_movie_menu" src="http://blog.wiiarenerds.com.br/wp-content/uploads/2008/07/create_movie_menu-300x100.jpg" alt="" width="300" height="100" /></a></p>
<p style="text-align: left;">Dentro do movieClip <strong>menu </strong>crie mais um movieClip (<em>Insert -&gt; New Symbol </em>)  com o nome de <strong>Botao:</strong></p>
<p style="text-align: center;"><a href="http://blog.wiiarenerds.com.br/wp-content/uploads/2008/07/create_movie_button.jpg"><img class="aligncenter size-medium wp-image-157" title="create_movie_button" src="http://blog.wiiarenerds.com.br/wp-content/uploads/2008/07/create_movie_button-300x100.jpg" alt="" width="300" height="100" /></a></p>
<p style="text-align: left;">Agora desenhe e faça as animações de ativação e desativação do botão (movieClip <strong>Botao</strong>).<br />
No primeiro frame e no frame que a animação de ativação estiver completa, coloque o action:</p>
<blockquote>
<p style="text-align: left;">stop();</p>
</blockquote>
<p style="text-align: left;">Dê o nome de &#8216;over&#8217; para o segundo frame e o nome de &#8216;out&#8217; para o imediatamente próximo a frame do fim da animação de ativação ( no exemplo esse frame é o de número 7 sendo que o frame com o label &#8216;out&#8217; é o de número 8 ).</p>
<p style="text-align: center;"><a href="http://blog.wiiarenerds.com.br/wp-content/uploads/2008/07/button_animation.jpg"><img class="aligncenter size-medium wp-image-154" title="button_animation" src="http://blog.wiiarenerds.com.br/wp-content/uploads/2008/07/button_animation-300x178.jpg" alt="" width="300" height="178" /></a></p>
<p style="text-align: left;">Agora voltando ao movieClip <strong>Menu</strong>,<strong> </strong>duplique 4 vezes o botão que você acabou de fazer, instancie cada um desses botões inclusive o botão origial com os nomes de <strong>bt0</strong>, <strong>bt1</strong>, <strong>bt2</strong>, <strong>bt3</strong>, <strong>bt4</strong> respectivamente (<em> no exemplo os botões foram instanciados sequencialmente, visando simplificar o código para um melhor entendimento do problema </em>).</p>
<p style="text-align: center;"><a href="http://blog.wiiarenerds.com.br/wp-content/uploads/2008/07/duplicate_and_instantiate_buttons.jpg"><img class="aligncenter size-medium wp-image-160" title="duplicate_and_instantiate_buttons" src="http://blog.wiiarenerds.com.br/wp-content/uploads/2008/07/duplicate_and_instantiate_buttons-163x300.jpg" alt="" width="163" height="300" /></a></p>
<p style="text-align: left;">Agora, no primeiro frame do movieClip <strong>Menu</strong>, adicione o código abaixo:</p>
<blockquote>
<p style="text-align: left;">// variável auxiliar<br />
var selectedItem:MovieClip = null;</p>
<p>// aplicamos o controle nos botões<br />
applyHoldStateControl(bt0);<br />
applyHoldStateControl(bt1);<br />
applyHoldStateControl(bt2);<br />
applyHoldStateControl(bt3);<br />
applyHoldStateControl(bt4);</p>
<p>// função que aplica os controles de &#8216;HoldState&#8217; nos botões<br />
function applyHoldStateControl(bt:MovieClip):Void {<br />
bt.onRollOver = function() {<br />
// ignoramos a chamada se o botão atual for o selecionado<br />
if (selectedItem != this) {<br />
this.gotoAndPlay(&#8216;over&#8217;);<br />
}<br />
};<br />
bt.onRollOut = function() {<br />
// ignoramos a chamada se o botão atual for o selecionado<br />
if (selectedItem != this) {<br />
this.gotoAndPlay(&#8216;out&#8217;);<br />
}<br />
};<br />
bt.onRelease = function() {<br />
// ignoramos a chamada se o botão &#8216;clicado&#8217; for o mesmo que já esta selecionado<br />
if (selectedItem != this) {<br />
// se existir um botão selecionado então fechamos ele.<br />
if (selectedItem != null) {<br />
selectedItem.gotoAndPlay(&#8216;out&#8217;);<br />
}<br />
// definimos o botão selecionado como o atual<br />
selectedItem = this;<br />
// chamamos a função que executa as ações referentes a cada botão<br />
callAction(this);<br />
}<br />
};<br />
}</p>
<p>// function que é chamada quando se clica em um botão<br />
function callAction(bt:MovieClip):Void {<br />
switch (bt) {<br />
case bt0 :// actions para botão 0<br />
_root.imagens.gotoAndStop(2);<br />
break;<br />
case bt1 :// actions para botão 1<br />
_root.imagens.gotoAndStop(3);<br />
break;<br />
case bt2 :// actions para botão N&#8230;<br />
_root.imagens.gotoAndStop(4);<br />
break;<br />
case bt3 :<br />
_root.imagens.gotoAndStop(5);<br />
break;<br />
case bt4 :<br />
_root.imagens.gotoAndStop(6);<br />
break;<br />
}<br />
_root.imagens.brilho.gotoAndPlay(2);<br />
}</p></blockquote>
<p style="text-align: left;">Agora abra o source desse tutorial e copie o movieClip imagens que esta na raiz do documento para o seu documento.</p>
<p style="text-align: center;"><a href="http://blog.wiiarenerds.com.br/wp-content/uploads/2008/07/copy_images_movieclip.jpg"><img class="aligncenter size-medium wp-image-155" title="copy_images_movieclip" src="http://blog.wiiarenerds.com.br/wp-content/uploads/2008/07/copy_images_movieclip-150x300.jpg" alt="" width="150" height="300" /></a></p>
<p style="text-align: left;">Agora aperte <strong>ctrl+enter</strong> e teste o seu <strong>Hold State Menu</strong>. ;)</p>
<p style="text-align: left;">É isso: um exemplo simples de como fazer um menu para começar a seção <strong>Coding</strong>. Se houver alguma dúvida deixem comentários ou mandem um email que tentarei ajudar da melhor forma possível.</p>
<p style="text-align: left;">Até a próxima.</p>
<p style="text-align: left;">Arquivo fonte desse tutorial: <a href="http://blog.wiiarenerds.com.br/wp-content/uploads/2008/07/hold_state_menu.zip">hold_state_menu<br />
</a>Imagens do Flickr: <a href="http://www.flickr.com/photos/vale-p/" target="_blank">http://www.flickr.com/photos/vale-p/</a></p>
<p style="text-align: left;">


<p>Nenhum post relacionado.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.wiiarenerds.com.br/2008/07/29/menu-hold-state/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Nova categoria no blog</title>
		<link>http://blog.wiiarenerds.com.br/2008/06/24/nova-categoria-no-blog/</link>
		<comments>http://blog.wiiarenerds.com.br/2008/06/24/nova-categoria-no-blog/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 12:57:59 +0000</pubDate>
		<dc:creator>Bruno Leles</dc:creator>
				<category><![CDATA[Nerd]]></category>
		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://blog.wiiarenerds.com.br/?p=71</guid>
		<description><![CDATA[Estamos inaugurando uma nova categoria no blog. A Progamming Dev Progamação Estrutura Desenvolvimento code &#8216;Coding&#8216;. Nessa categoria iremos postar artigos, tutoriais sobre progamação em geral, o foco baseado no conhecimento dos integrantes será: Desenvolvimento web utilizando, Flash, PHP, XML, ASP, ASP.net, DHTML, XHTML, CSS, JavaScript, etc e Desenvolvimento desktop C/C++, C# e Java, mais isso [...]


Nenhum post relacionado.]]></description>
			<content:encoded><![CDATA[<p>Estamos inaugurando uma nova categoria no blog. A <span style="text-decoration: line-through;">Progamming</span> <span style="text-decoration: line-through;">Dev</span> <span style="text-decoration: line-through;">Progamação</span> <span style="text-decoration: line-through;">Estrutura</span> <span style="text-decoration: line-through;">Desenvolvimento</span> <span style="text-decoration: line-through;">code</span> &#8216;<strong>Coding</strong>&#8216;.</p>
<p>Nessa categoria iremos postar artigos, tutoriais sobre progamação em geral, o foco baseado no conhecimento dos integrantes será: Desenvolvimento web utilizando, Flash, PHP, XML, ASP, ASP.net, DHTML, XHTML, CSS, JavaScript, etc e Desenvolvimento desktop C/C++, C# e Java, mais isso não impede de surgirem alguns experimentos utilizando outras linguagens, paradigmas ou tecnologias.</p>
<p>Espero que gostem e aproveitem a nova categoria do blog. E caso tenham algum assunto ou dúvida que vocês gostariam que nós comentássemos, mandem comentários que tentaremos ajudá-los da melhor forma possível.</p>


<p>Nenhum post relacionado.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.wiiarenerds.com.br/2008/06/24/nova-categoria-no-blog/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

