<?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>Sun, 29 Jan 2012 11:31:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>animaçao com rotationY</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/flash/animacao-com-rotationy/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/flash/animacao-com-rotationy/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 17:04:34 +0000</pubDate>
		<dc:creator>Luiz Carlos</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=6594</guid>
		<description><![CDATA[Pessoal, vamos criar um efeito bem simples, apenas rotacionando pequenos quadrados que estarão por cima de uma imagem. Vou disponibilizar essa imagem para fazer o tutorial, mas fica a sua escolha o uso de qualquer imagem. Vamos utilizar mais uma vez o motor de interpolação da greensock, você pode baixá-lo clicando aqui Crie um arquivo [...]]]></description>
			<content:encoded><![CDATA[<p>Pessoal, vamos criar um efeito bem simples, apenas rotacionando pequenos quadrados que estarão por cima de uma imagem. Vou disponibilizar essa imagem para fazer o tutorial, mas fica a sua escolha o uso de qualquer imagem.<br />
<a href="http://www.mxstudio.com.br/wp-content/uploads/2011/07/xbox-360-250gb-modern-warfare-2-limited-edition.jpg"><img class="aligncenter size-full wp-image-6601" src="http://www.mxstudio.com.br/wp-content/uploads/2011/07/xbox-360-250gb-modern-warfare-2-limited-edition.jpg" alt="" width="600" height="546" /></a></p>
<p>Vamos utilizar mais uma vez o motor de interpolação da greensock, você pode baixá-lo clicando  <a href="http://www.greensock.com/tweenlite"> aqui </a></p>
<p>Crie um arquivo no flash do tipo <em><strong>ActionScript 3.0</strong> </em>e importe a imagem escolhida para dentro do arquivo criado. Se o tamanho do palco estiver maior ou menor que a imagem escolhida, não faz nenhuma diferença, pois vamos ajustar o tamanho do palco para o tamanho da imagem.</p>
<p><em> </em></p>
<p>Click na imagem escolhida que está no palco. Observe que no painel<em> <strong>Properties</strong></em> você pode visualizar o posicionamento <strong>x </strong>e <strong>y</strong> e o tamanho<em> <strong>width </strong><em>e <strong>height</strong></em>. </em>Deixe<em> <strong>x</strong><em> e <strong>y</strong></em></em> com <span style="color: #ff0000">0 (zero)</span> e repare que a imagem ficou alinhada no topo e a esquerda.</p>
<p><em> </em>Agora pressione ctrl + j para ajustar o tamanho do palco e após configurar o palco de acordo com sua imagem pressione <em> </em></p>
<p><em> </em></p>
<p><em> </em></p>
<p><em> </em></p>
<p><em> </em></p>
<p><em><strong>OK</strong><em>.</em></em></p>
<p><em> </em></p>
<p><em> </em></p>
<p><em> </em></p>
<p><em> </em></p>
<p><em> </em></p>
<p><em><em> <a href="http://www.mxstudio.com.br/wp-content/uploads/2011/07/setup_stage1.jpg"><img class="aligncenter size-full wp-image-6603" src="http://www.mxstudio.com.br/wp-content/uploads/2011/07/setup_stage1.jpg" alt="" width="646" height="498" /></a></em></em></p>
<p><em> </em></p>
<p><em> </em></p>
<p>Crie uma nova camada e trave a camada onde está nossa imagem clicando no cadeado. Usando a ferramenta de desenho <em><strong>Rectangle Tool</strong></em> ou simplesmente pressionando <strong><em>r</em></strong> que é o seu atalho, desenhe um quadrado de 50 por 50, escolha a cor de preenchimento branca e deixe sem contorno. Converta o quadrado criado para um movie clip e em <strong><em>Registration</em></strong> deixe alinhado no topo e à esquerda. Marque também a opção <strong><em>Export for ActionScript</em></strong> e em <strong><em>Class </em></strong>escreva &#8220;Box&#8221; clique em <strong><em>OK</em></strong>.</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2011/07/setup_movie_clip.jpg"><img class="aligncenter size-full wp-image-6605" src="http://www.mxstudio.com.br/wp-content/uploads/2011/07/setup_movie_clip.jpg" alt="" width="538" height="642" /></a></p>
<p>Como já referenciamos uma classe ao <strong><em>movie clip</em></strong> podemos deletá-lo do palco, pois o adicionaremos de forma dinâmica. Crie uma nova camada e pressione <strong><em>f9</em></strong> para visualizar o painel <strong><em>ACTIONS</em></strong> e digite:</p>
<pre>import flash.display.MovieClip;

var box:MovieClip = new Box();
box.x = Math.random() * stage.stageWidth;
box.y = Math.random() * stage.stageHeight;
addChild(box);</pre>
<p>Teste o arquivo. Observe que estamos instanciando o <strong><em>movie clip</em></strong> criado no passo anterior e adicionando-o em uma posição aleatória do palco. Como se trata de um <strong><em>movie clip</em></strong>, de forma simples nós poderíamos desenha-lo usando a API de desenho do flash. Vamos criar uma grade contendo apenas nosso <strong><em>mc Box</em></strong>. Como vão ser vários boxes, vamos adicionar todos em um container para melhor praticidade.</p>
<pre>import flash.display.MovieClip;
import flash.display.Sprite;

var containerBoxes:Sprite = new Sprite();
addChild(containerBoxes);
criaGrade();

function criaGrade():void
{
	var i:uint;
	var j:uint;

	while (j &lt; stage.stageHeight)
	{
		while(i &lt;= stage.stageWidth)
		{
			var box:MovieClip = new Box();
			box.x = i;
			box.y = j;
			containerBoxes.addChild(box);

			i += 50;
		}
		i = 0;
		j += 50;
	}
}</pre>
<p><strong>Ctrl + Enter para testar o arquivo.</strong> Observe que nossa grande que contém os boxes está sobre a imagem no palco. Vamos deixar o alfa dos boxes com 0 (zero).</p>
<pre>box.y = j;
box.alpha = 0;</pre>
<p><strong>Ctrl + Enter para testar o arquivo.</strong> Observe que os boxes agora estão invisíveis. Agora, adicionaremos dois eventos: ao passar o mouse sobre o boxe invisível, ele aparece; ao remover o mouse ele desaparece.</p>
<pre>criaGrade(); //adicione daqui para baixo

containerBoxes.addEventListener(MouseEvent.MOUSE_OVER, onOver);
containerBoxes.addEventListener(MouseEvent.MOUSE_OUT, onOut);

function onOver(e:MouseEvent):void
{
	TweenLite.to(e.target, 1, {alpha:1, delay:0});
}

function onOut(e:MouseEvent):void
{
	TweenLite.to(e.target, 1, {alpha:0, delay:0});
}</pre>
<p>Adicione os imports da TweenLite no topo do arquivo.</p>
<pre>import com.greensock.easing.*;</pre>
<pre>import com.greensock.*;</pre>
<p>Copile. Observe que ao passar o mouse sobre a imagem, os boxes começam a aparecer e ao remover o mouse começa novamente a desaparecer. Você pode notar que se o mouse estiver movimentando sobre a imagem, o boxe começa a aparecer, mas logo em seguida já desaparece, pois o mouse já está sobre outro boxe ativando assim o <strong><em>onOut</em></strong>. Troque o <strong><em>delay</em></strong> <strong>onOut</strong><em> de 0 para 3, assim retardamos em 3 segundos para que volte para alfa 0.</em></p>
<p><em>Teste novamente. Repare que ao passar o mouse, mesmo alterando o <strong><em>delay</em></strong> de <em><strong>onOut</strong></em>, não resolveu o problema. O que será? Estamos com uma sobrecarga de tween, com o movimento do mouse o <em>target</em> altera a todo instante. Adicione essa linha logo abaixo dos imports e teste novamente.</em></p>
<p><em> </em></p>
<p><em> </em></p>
<p><em></p>
<pre>OverwriteManager.init(OverwriteManager.AUTO);</pre>
<p></em></p>
<p><em> </em></p>
<p>Altere nas funções <strong>criaGrade</strong> e <strong>onOut</strong> o <strong>alpha </strong>para 1 (um) e em <strong>onOver </strong>para 0 (zero). Apenas invertemos a ordem de como os boxes estavam aparecendo.</p>
<p>Agora para finalizar, adicione em <strong>criaGrade</strong> e <strong>onOut</strong> a propriedade <strong>rotationY </strong>para 180 e em <strong>onOver</strong> adicione também a propriedade <strong>rotationY</strong> para 0 (zero). Aconselho também ajustar o valor do <strong>delay</strong> em <strong>onOut</strong> para maior que 6. Copile o arquivo, passe o mouse sobre os boxes e observe o efeito.</p>
<p>Pronto, segue o código completo da timeline.</p>
<pre>import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;
import com.greensock.easing.*;
import com.greensock.*;
OverwriteManager.init(OverwriteManager.AUTO);

var containerBoxes:Sprite = new Sprite();
addChild(containerBoxes);
criaGrade();

containerBoxes.addEventListener(MouseEvent.MOUSE_OVER, onOver);
containerBoxes.addEventListener(MouseEvent.MOUSE_OUT, onOut);

function onOver(e:MouseEvent):void
{
	TweenLite.to(e.target, 1, {alpha:0, rotationY:0});
}

function onOut(e:MouseEvent):void
{
	TweenLite.to(e.target, 1, {alpha:1, rotationY:180, delay:3});
}

function criaGrade():void
{
	var i:uint;
	var j:uint;

	while (j &lt; stage.stageHeight)
	{
		while(i &lt;= stage.stageWidth)
		{
			var box:MovieClip = new Box();
			box.x = i;
			box.y = j;
			box.alpha = 1;
			box.rotationY = 180;
			containerBoxes.addChild(box);

			i += 50;
		}
		i = 0;
		j += 50;
	}
}</pre>
<p>Agora, é hora de escrever todo esse código que está na timeline para uma classe. Então junto ao seu arquivo .fla criei uma pasta com o nome &#8220;app&#8221; e dentro dela crie uma arquivo &#8220;Main.as&#8221;.<br />
Segue a classe.</p>
<pre>package app
{
	import com.greensock.easing.*;
	import com.greensock.*;

	import flash.events.MouseEvent;
	import flash.events.Event;
	import flash.display.Sprite;
	import flash.display.MovieClip;

	public class Main extends Sprite
	{
		private var containerBoxes:Sprite;

		public function Main():void
		{
			if (stage)
				init();
			else
				this.addEventListener(Event.ADDED_TO_STAGE, init);

		}

		private function init(e:Event = null):void
		{
			this.removeEventListener(Event.ADDED_TO_STAGE, init);

			OverwriteManager.init(OverwriteManager.AUTO);

			containerBoxes = new Sprite();
			addChild(containerBoxes);

			containerBoxes.addEventListener(MouseEvent.MOUSE_OVER, onOver);
			containerBoxes.addEventListener(MouseEvent.MOUSE_OUT, onOut);

			criaGrade();
		}

		private function onOver(e:MouseEvent):void
		{
			TweenLite.to(e.target, 1, {alpha:0, rotationY:0});
		}

		private function onOut(e:MouseEvent):void
		{
			TweenLite.to(e.target, 1, {alpha:1, rotationY:180, delay:3});
		}

		private function criaGrade():void
		{
			var i:uint;
			var j:uint;

			while (j &lt; stage.stageHeight)
			{
				while(i &lt;= stage.stageWidth)
				{
					var box:MovieClip = new Box();
					box.x = i;
					box.y = j;
					box.alpha = 1;
					box.rotationY = 180;
					containerBoxes.addChild(box);

					i += 50;
				}
				i = 0;
				j += 50;
			}
		}

	}

}</pre>
<p>Agora para finaliza, você pode alterar vária propriedades do &#8220;box&#8221; como rotation, rotationX, rotationY, rotationY, x, y, alpha&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/animacao-com-rotationy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>smoothing em tempo de execução parte 2</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/flash/adicionar-smoothing-em-tempo-de-execucao-parte-2/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/flash/adicionar-smoothing-em-tempo-de-execucao-parte-2/#comments</comments>
		<pubDate>Tue, 14 Jun 2011 13:47:42 +0000</pubDate>
		<dc:creator>Luiz Carlos</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=6452</guid>
		<description><![CDATA[Pessoal, nessa parte 2 vou ensinar uma técnica excelente para quem precisa fazer animação em arquivos de bitmap. Sempre que preciso fazer uma animação em uma imagem, vou em propriedades da imagem e ativo o Allow smoothing. Veja a figura 1 com essa propriedade ativada. O flash suaviza a animação, mas também adiciona um pequeno [...]]]></description>
			<content:encoded><![CDATA[<p>Pessoal, nessa parte 2 vou ensinar uma técnica excelente para quem precisa fazer animação em arquivos de bitmap. Sempre que preciso fazer uma animação em uma imagem, vou em propriedades da imagem e ativo o <strong><em>Allow smoothing</em></strong>.</p>
<p>Veja a figura 1 com essa propriedade ativada. O flash suaviza a animação, mas também adiciona um pequeno efeito de blur que pode interferir na qualidade final do seu trabalho.</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2011/05/img1_tutorial.jpg"><img class="aligncenter size-full wp-image-6453" src="http://www.mxstudio.com.br/wp-content/uploads/2011/05/img1_tutorial.jpg" alt="" width="670" height="688" /></a></p>
<p>Nesse tutorial nós vamos ativar o <em><strong>Allow smoothing</strong></em> mostrado na imagem acima e quando a animação terminar vamos desativar o smoothing via código.</p>
<p>Vou disponibilizar essa imagem abaixo, apenas como exemplo, mas você poderá usar uma de sua preferência.<br />
<a href="http://www.mxstudio.com.br/wp-content/uploads/2011/05/HTC_Topaz_01.jpg"></a></p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2011/05/HTC_Topaz_01.jpg"><img class="aligncenter size-full wp-image-6454" src="http://www.mxstudio.com.br/wp-content/uploads/2011/05/HTC_Topaz_01.jpg" alt="" width="245" height="500" /></a></p>
<p>Crie no flash um novo arquivo do tipo <strong><em>ActionScript 3.0</em></strong>. Após criar o arquivo, pressione Ctrl + j e configure para 800px de largura (width) 600px de altura (height); em <strong><em>Background color</em></strong>, escolha a cor branca e o valor do <strong><em>Frame rate</em></strong> deixe com 30.</p>
<p>Importe a imagem disponibilizada acima para dentro do arquivo criado. Se a imagem estiver no palco, clique nela e a delete. Você não excluiu a imagem totalmente do arquivo, ela continuará na biblioteca. Caso você não esteja vendo o <strong><em>biblioteca (LIBRARY)</em></strong> pressione f11.  Clique direito sobre a imagem importada e em seguida clique em <strong><em>Properties&#8230;</em></strong> observe que aparecerá uma janela <strong><em>Bitmap Properties</em></strong> como está na figura 1.</p>
<p>Nessa janela <strong><em>Bitmap Properties</em></strong>, vamos marcar <strong><em>Custom</em></strong> e o valor para 100. Isso significa que não haverá compactação nenhuma de Bitmap no flash. Faça testes com os valores de <em><strong>Custom</strong></em> que vai de 0 a 100 e ao alterar o valor de Custom não se esqueça de clicar no botão <strong><em>Test </em></strong>para visualizar o resultado.</p>
<p>Observação: quanto maior o valor definido em <strong><em>Custom</em></strong>, menor vai ser a taxa de compactação do bitmap, maior vai ser a qualidade do bitmap e o tamanho do seu arquivo final.</p>
<p>Clique na imagem que está na biblioteca e arraste-a para o palco. Aperte Ctrl + l para aparecer o painel <strong><em>ALIGN;</em></strong> clique em <strong><em>Align horizontal center</em></strong> e <em><strong>Align vertical center</strong></em> para centralizar a imagem no palco.</p>
<p>Agora pressione<em> f8</em> e aparecerá a janela <em><strong>Convert to Symbol.</strong></em> Em <strong><em>type </em></strong>deixe <em><strong>Movie Clip</strong></em> e em <strong><em>Registration </em></strong>clique no quadradinho do centro. Repare que o que está no palco agora não é mais uma imagem e sim um Movie Clip e dentro dele está nossa imagem. Vamos instanciá-lo como &#8220;mc&#8221; para que possa ser utilizado no código as3.</p>
<p><em><strong>Nota</strong></em>: vamos utilizar o motor de interpolação da greensock. Você pode obtê-lo <a href="http://www.greensock.com"> aqui</a>.</p>
<p>Crie uma nova camada onde vamos digitar o código as3 e pressione f9 para abrir o painel <em><strong>ACTIONS</strong></em></p>
<pre lang="actionscript3">import flash.events.Event;

mc.addEventListener(Event.ENTER_FRAME, loop);
function loop(e:Event):void
{
	mc.rotation += 2;
}</pre>
<p>Repare que com o Allow smoothing desativado a imagem fica bem desgastada. Vamos ativar o <strong><em>smoothing</em></strong> em propriedades da imagem e testar o filme novamente. O resultado com certeza será bem melhor. Após testar desative novamente o <em><strong>smoothing.</strong></em></p>
<p>Agora, como ativar e desativar o <strong><em>smoothing</em></strong> por código?</p>
<p>Primeiro precisamos marcar a opção <em><strong>Export for ActionScript</strong></em> que está na janela <strong><em>Bitmap Properties.</em></strong> Com isso, nossa imagem que está dentro do mc, vai deixar de ser um <strong><em>Shape </em></strong>e ser um <strong><em>Bitmap</em></strong>. Com essa imagem sendo um <strong><em>Bitmap, </em></strong>nós conseguimos acessá-la e ativar a propriedade <em><strong>smoothing</strong></em>.</p>
<p>Marque a opção <strong><em>Export for ActionScript</em></strong>. Para capturar o bitmap, vamos utilizar o método getChildAt(index) que retorna um DisplayObject, feito a captura resta apenas ativar a propriedade smoothing.</p>
<pre lang="actionscript3">var img:Bitmap = mc.getChildAt(0) as Bitmap;
img.smoothing = true;</pre>
<p>Teste sua aplicação, e repare que a deformação na imagem está mais suave.</p>
<p>Vamos cria um botão e a partir dele ativar e desativar o <em><strong>smoothing.</strong></em></p>
<pre lang="actionscript3">var bt:Sprite = new Sprite();                                   //criando sprite que vai ser o botão
bt.graphics.beginFill(0xff0000, 1);                             //prenchimento do botão vai ser vermelhor e sem alpha
bt.graphics.drawRect(0, 0, 50, 50);                             //desenhando um quadrado de 50px na posição x e y 0
bt.graphics.endFill();				                //finalizando desenho
bt.buttonMode = true;				                //ativando como um botão
bt.addEventListener(MouseEvent.CLICK, clickBt);                 //adicionado evento de click
addChild(bt); 				                        //adicionando na time-line

function clickBt(e:MouseEvent):void                             //funçao responsável pelo evento de click
{
	bmp.smoothing = !bmp.smoothing;                         //negando o estado do smoothing
	trace("suvizar é", bmp.smoothing);
}</pre>
<p>Teste o arquivo e veja a diferença ao clicar no botão que acabamos de criar.<br />
Agora comente a linha onde estamos adicionando o evento de ENTER_FRAME ao &#8220;mc&#8221;, e adicione no topo do nosso código os importes necessários para o motor de interpolação greensock.</p>
<pre lang="actionscript3">import com.greensock.easing.*;
import com.greensock.TweenLite;</pre>
<p>E no final do código adicione.</p>
<pre lang="actionscript3">

/*
mc.y      = mc.y + 200;
mc.scaleX = 0.5;
mc.scaleY = 0.5;
mc.alpha  = 0;
TweenLite.to(mc, 1.3, { y:mc.y-200, scaleX:1, scaleY:1, alpha:1, ease:Strong.easeOut, delay:1, onComplete:desativaSmoothing });
*/

//você pode optar por usar a opção comentada acima, ou usar essa opção abaixo, que ao iniciar configura o
//mc para as propriedades definidas e no final volta para as propriedades iniciais
TweenLite.from(mc, 1.3, { y:mc.y + 200, scaleX:.5, scaleY:.5, alpha:0, ease:Strong.easeOut,
			   	delay:1, onComplete:desativaSmoothing });

function desativaSmoothing():void
{
	bmp.smoothing = false;
}</pre>
<p>Pronto! Segue nosso código completo da time-line.</p>
<pre lang="actionscript3">import com.greensock.easing.*;
import com.greensock.*;
import flash.events.Event;
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.MouseEvent;

//mc.addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
function loop(e:Event):void
{
	mc.rotation += 2;
}

var bmp:Bitmap = mc.getChildAt(0) as Bitmap;
bmp.smoothing = true;

var bt:Sprite = new Sprite(); 		                  //criando sprite que vai ser o botão
bt.graphics.beginFill(0xff0000, 1);                       //prenchimento do botão vai ser vermelhor e sem alpha
bt.graphics.drawRect(0, 0, 50, 50);                       //desenhando um quadrado de 50px na posição x e y 0
bt.graphics.endFill();				          //finalizando desenho
bt.buttonMode = true;				          //ativando como um botão
bt.addEventListener(MouseEvent.CLICK, clickBt);           //adicionado evento de click
addChild(bt); 						  //adicionando na time-line

function clickBt(e:MouseEvent):void                       //funcao responsável pelo evento de click
{
	bmp.smoothing = !bmp.smoothing;                   //negando o estado do smoothing
	trace("suvizar é", bmp.smoothing);
}

TweenLite.from(mc, 1.3, { y:mc.y + 200, scaleX:.5, scaleY:.5, alpha:0, ease:Strong.easeOut,
			   	delay:1, onComplete:desativaSmoothing });

function desativaSmoothing():void
{
	bmp.smoothing = false;
}</pre>
<p>Agora vamos passar no código que esta na timeline para uma classe. Suponho que você já saiba a criar uma classe e defini-lá no <strong>Document Class</strong><em> </p>
<pre lang="actionScript3">package app  {
	import com.greensock.easing.*;
	import com.greensock.TweenLite;

	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.display.Bitmap;
	import flash.display.MovieClip;

	public class Main extends Sprite
	{
		public var mc:MovieClip;
		private var bmp:Bitmap;

		public function Main():void
		{
			if (stage)
				init();
			else
				this.addEventListener(Event.ADDED_TO_STAGE, init);
		}

		private function init(e:Event = null):void
		{
			this.removeEventListener(Event.ADDED_TO_STAGE, init);				

			//capturando image
			bmp = mc.getChildAt(0) as Bitmap;
			bmp.smoothing = true;

			TweenLite.from(mc, 1.3, { y:mc.y + 200, scaleX:.5, scaleY:.5, alpha:0, ease:Strong.easeOut,
			   	delay:1, onComplete:desativaSmoothing });

			criarBt();
		}

		private function desativaSmoothing():void
		{
			bmp.smoothing = true;
		}

		private function criarBt():void
		{
			var sp:Sprite = new Sprite();
			sp.graphics.beginFill(0xff0000, 1);
			sp.graphics.drawRect(0, 0, 50, 50);
			sp.graphics.endFill();

			sp.buttonMode = true;
			sp.addEventListener(MouseEvent.CLICK, clickBt);
		}

		private function clickBt(e:MouseEvent):void
		{
			bmp.smoothing = !bmp.smoothing;

			trace("suvizar é", bmp.smoothing);;
		}

	}

}</pre>
<p>Tutorial finalizado, qualquer duvida não deixe de questionar. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/adicionar-smoothing-em-tempo-de-execucao-parte-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Trabalhando com datas e horas</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/flash/trabalhando-com-datas-e-horas/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/flash/trabalhando-com-datas-e-horas/#comments</comments>
		<pubDate>Mon, 16 May 2011 21:19:38 +0000</pubDate>
		<dc:creator>DiegoWebmotion</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Data e Hora]]></category>
		<category><![CDATA[Date]]></category>
		<category><![CDATA[Timer]]></category>
		<category><![CDATA[TimerEvent]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=6418</guid>
		<description><![CDATA[Trabalhar com datas e horas no Flash pode ser muito útil de acordo com o aplicativo que estamos desenvolvendo. Existem várias aplicações para esses dados, como controle de conteúdo, podemos disparar eventos em datas pré programadas, coisas que vão desde um simples relógio digital a eventos mais complexos. Vou abordar neste Tutorial algumas formas possíveis [...]]]></description>
			<content:encoded><![CDATA[<p>Trabalhar com datas e horas no Flash pode ser muito útil de acordo com o aplicativo que estamos desenvolvendo. Existem várias aplicações para esses dados, como controle de conteúdo, podemos disparar eventos em datas pré programadas, coisas que vão desde um simples relógio digital a eventos mais complexos.</p>
<p>Vou abordar neste Tutorial algumas formas possíveis de se trabalhar com esse tipo de dado.<br />
Mas antes vamos conhecer algumas tarefas comuns de datas e horas.</p>
<ul>
<li>Trabalhar com objetos de Date;</li>
<li>Obter data e hora atual;</li>
<li>Acesso a unidades individuais da data e hora (dias, anos, horas, minutos, segundos &#8230;);</li>
<li>Cálculos aritméticos com datas e horas;</li>
<li>Conversão entre fusos horários;</li>
<li>Realização de ações repetitivas;</li>
<li>Realizar tarefas em tempos específicos, pré programados.</li>
</ul>
<p><strong>Trabalhar com objetos de Date:</strong></p>
<p>Para criar um objeto de Date é muito simples. Veja o exemplo:<br />
Sem parâmetros no construtor teremos uma resposta base com data e hora atuais.</p>
<p><strong>var _data:Date = new Date();</strong></p>
<p><strong>trace(_data); //Mon May 16 11:31:53 GMT-0300 2011</strong></p>
<p><strong> </strong></p>
<p>Se colocarmos um único parâmetro, o construtor Date() irá devolvê-lo como milissegundos e a data de 1 de janeiro de 1970 como mostrar no exemplo abaixo.</p>
<p><strong>// milissegundos por dia</strong></p>
<p><strong>var _mls:int = 1000 * 60 * 60 * 24;</strong></p>
<p><strong>var _data:Date = new Date(_mls);</strong></p>
<p><strong>trace(_data) // Thu Jan 1 22:00:00 GMT-0200 1970</strong></p>
<p><strong>Acesso a unidades individuais da data e hora:</strong></p>
<p>Definindo uma data e entendendo os parâmetros:</p>
<p>var _data:Date = new Date(2011, 4, 16, 11, 45, 30, 0);</p>
<p>trace(_data); //Mon May 16 11:45:30 GMT-0300 2011</p>
<p>Vamos entender como tudo funciona:</p>
<p>2011 – aponta o ano;</p>
<p>4 – aponta o mês começa a contar do 0;</p>
<p>16 – aponta o dia do mês;</p>
<p>11 – aponta a hora;</p>
<p>45 – aponta os minutos;</p>
<p>30 – aponta os segundos;</p>
<p>0 – aponta os milissegundos;</p>
<p>Podemos obter valores da nossa unidade de tempo através de suas propriedades:</p>
<p><strong>fullYear, month (de 0 a 11), date (de 1 a 31), Day, hours, minutes, seconds, milliseconds</strong>.</p>
<p><strong>Cálculos aritméticos com data e hora:</strong></p>
<p>Para que serve isso?</p>
<p>Já me fiz essa pergunta, RS.</p>
<p>Bom quando vamos criar um relógio digital ou um contador de data regressivo, precisamos realizar cálculos aritméticos para chegar em um determinado resultado. Para facilitar nosso trabalho podemos criar algumas constantes para armazenar valores que irão nos auxiliar. Veja o exemplo:</p>
<p>// Encontrar milissegundos por minuto:</p>
<p>var _mlsM:int = 1000 * 60;</p>
<p>// Econtrar milissegundos por hora:</p>
<p>var _mlsH:int = 1000 * 60 * 60;</p>
<p>// Encontrar milissegundos por dia:</p>
<p>var _mlsD:int = 1000 * 60 * 60 *24;</p>
<p>Exemplo:</p>
<p><strong>var _mlsM:int = 1000 * 60;</strong></p>
<p><strong>var _mlsH:int = 1000 * 60 * 60;</strong></p>
<p><strong>var _mlsD:int = 1000 * 60 * 60 * 24;</strong></p>
<p><strong> </strong></p>
<p><strong>// Pegamos a data atual</strong></p>
<p><strong>var _data:Date = new Date();</strong></p>
<p><strong>// acrescentar o periodo de 30 dias</strong></p>
<p><strong>var _data2:Date = new Date(_data.getTime() + (30 * _mlsD));</strong></p>
<p><strong>trace(_data2); // Wed Jun 15 15:33:59 GMT-0300 2011</strong></p>
<p><strong> </strong></p>
<p><strong>Conversão entre fusos horários:</strong></p>
<p>Neste tópico veremos como converter o fuso horário. Issó é útil para calcular com mais precisar horários em lugares diferentes. Precisei de algo semelhante em um projeto que desenvolvi há algum tempo onde eu tive que montar 5 relógios e cada um mostrava a hora em um fuso horário diferente.</p>
<p>Para que possamos fazer a conversão do fuso horário primeiro temos que calcular o valor do fuso horário em milissegundos.</p>
<p><strong>// Pegamos a data atual</strong></p>
<p><strong>var _data:Date = new Date(&#8220;Wed Jun 15 15:59:20 GMT-0300 2011&#8243;);</strong></p>
<p><strong> </strong></p>
<p><strong>// convertendo fuso horário em milissegundos</strong></p>
<p><strong>var _fmls:Number = _data.getTimezoneOffset() * 60 * 1000;</strong></p>
<p><strong>_data.setTime(_data.getTime() + _fmls);</strong></p>
<p><strong>trace(_data); //Wed Jun 15 18:59:20 GMT-0300 2011</strong></p>
<p>Abordarei  apenas um item que é o Timer.</p>
<p>Usaremos ele para a criação de um Relógio em um tutorial posterior.</p>
<p><strong>Timer</strong></p>
<p>Uma das melhores formas de se manipular funções de tempo é usar a Classe Timer.</p>
<p>É simples e de fácil entendimento. Então vamos ver um exemplo.</p>
<p><strong>package </strong></p>
<p><strong>{</strong></p>
<p><strong> import flash.display.Sprite;</strong></p>
<p><strong> import flash.events.TimerEvent;</strong></p>
<p><strong> import flash.utils.Timer;</strong></p>
<p><strong> </strong></p>
<p><strong> public class calculaTempo extends Sprite</strong></p>
<p><strong> {</strong></p>
<p><strong> </strong></p>
<p><strong> public function calculaTempo()</strong></p>
<p><strong> {</strong></p>
<p><strong> // constructor code</strong></p>
<p><strong> // criando novo timer</strong></p>
<p><strong> var _tempo:Timer = new Timer(1000, 5);// repetirá a cada segundo por 5 vezes</strong></p>
<p><strong> </strong></p>
<p><strong> // eventos</strong></p>
<p><strong> _tempo.addEventListener(TimerEvent.TIMER, _conta);</strong></p>
<p><strong> _tempo.addEventListener(TimerEvent.TIMER_COMPLETE, _terminou);</strong></p>
<p><strong> </strong></p>
<p><strong> // startando o timer</strong></p>
<p><strong> </strong><strong>_tempo.start();</strong></p>
<p><strong> }</strong></p>
<p><strong> </strong></p>
<p><strong> public function _conta(e:TimerEvent):void</strong></p>
<p><strong> {</strong></p>
<p><strong> // retornará o tempo</strong></p>
<p><strong> trace(&#8220;Contou &#8221; + e.target.currentCount);</strong></p>
<p><strong> </strong><strong>}</strong></p>
<p><strong> </strong></p>
<p><strong> public function _terminou(e:TimerEvent):void</strong></p>
<p><strong> {</strong></p>
<p><strong> // retornara somente quando terminar o ciclo de 5 disparos</strong></p>
<p><strong> trace(&#8220;Terminou&#8221;);</strong></p>
<p><strong> }</strong></p>
<p><strong> </strong></p>
<p><strong> }</strong></p>
<p><strong> </strong></p>
<p><strong>}</strong></p>
<p>Por hora é isso ai pessoal espero ter esclarecido um pouco mais sobre o uso dessa classe e em breve iremos criar um relógio usando esses conhecimentos. Até o próximo.</p>
<p>Você também pode conferir esse tutorial e muito mais em meu blog: <a title="diegowebmotion" href="http://diegowebmotion.wordpress.com" target="_blank">diegowebmotion.worpress.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/trabalhando-com-datas-e-horas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe lança Wallaby para converter Flash em HTML5!</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/flash/adobe-lanca-wallaby-para-converter-flash-em-html5/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/flash/adobe-lanca-wallaby-para-converter-flash-em-html5/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 19:10:06 +0000</pubDate>
		<dc:creator>Juliano Haussen</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=6160</guid>
		<description><![CDATA[Wallaby é uma livre aplicação Adobe AIR que permite aos designers e desenvolvedores converter arquivos Adobe Flash (Flas) em HTML5 baseado em padrões, CSS3 e arquivos javascript.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2011/03/flashlogo.jpg"><img class="alignnone size-full wp-image-6161" title="flashlogo" src="http://www.mxstudio.com.br/wp-content/uploads/2011/03/flashlogo.jpg" alt="" width="222" height="208" /></a></p>
<p>Apesar da tecnologia Flash ser o saco de pancadas dos fãs de padrões web, a Adobe vem trabalhando duro para abraçar o HTML 5. A empresa lançou o seu próprio player de vídeo HTML5 e ferramentas de exportação HTML5 para Dreamweaver e Illustrator (e o fireworks poxa). Agora a Adobe lança o Wallaby, um novo conversor de Flash para HTML5.</p>
<p>Wallaby é uma livre aplicação Adobe AIR que permite aos designers e desenvolvedores converter arquivos Adobe Flash (Flas) em HTML5 baseado em padrões, CSS3 e arquivos javascript.</p>
<p>O objetivo do Wallaby é bastante claro: dispositivos IOS da Apple. O código gerado  depende só de alguns recursos CSS Webkit, o que significa que os resultados do Wallaby não irão funcionar em todos navegadores web. Em outras palavras, o Wallaby ainda não é a solução para quem gostaria de fazer o salto do Flash para HTML5.</p>
<p>É ótimo ver a Adobe usando o padrão CSS Animations, mas infelizmente as animações só funcionam de forma confiável em navegadores baseados no Webkit (Safari, Chrome).</p>
<p>Wallaby também não irá converter alguns elementos em Flash para HTML5, porque simplesmente não existe equivalente em HTML5. Mas Wallaby irá avisar quando seu arquivo FLA não será exportado para HTML5. Confira uma lista completa de recursos com suporte Flash, na<a href="http://labs.adobe.com/wiki/index.php/Wallaby#Features_and_Support" target="_blank"> página de documentação do Wallaby no Adobe Labs</a>.</p>
<p>O ponto fraco do Wallaby é não poder converter o Actionscript para Javascript, segundo o gerente sênior de produtos da Adobe Creative Suite, Tom Barclay, por enquanto, o principal uso do Wallaby sera para converter banners em Flash em algo que os usuário do IOS podem ver. Para esse caso, o Wallaby funciona bem. Para qualquer coisa além disso, teremos que ajustar as coisas à mão no editor de texto.</p>
<p>Mas só porque o Wallaby não faz muitas coisas, não significa que não pode ser um ponto de partida para converter filmes mais complexos do Flash.</p>
<p><span><span>Barclay não descartou a possibilidade de que Wallaby poderá um dia converter o Actionscript em Javascript.</span></span></p>
<p><a href="http://labs.adobe.com/technologies/wallaby/" target="_blank">Visite o Adobe Labs para adquirir o Wallaby.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/adobe-lanca-wallaby-para-converter-flash-em-html5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adicionar smoothing em tempo de execução</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/flash/adicionar-smoothing-em-tempo-de-execucao/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/flash/adicionar-smoothing-em-tempo-de-execucao/#comments</comments>
		<pubDate>Fri, 28 Jan 2011 21:36:40 +0000</pubDate>
		<dc:creator>Luiz Carlos</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[adicionar smoothing em bitmap com actionscript 3]]></category>
		<category><![CDATA[carrega imagem com actionscript 3]]></category>
		<category><![CDATA[suavizar imagem com actionscript 3]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=5926</guid>
		<description><![CDATA[Primeiro abra o flash e crie um novo arquivo do tipo “ActionScript 3.0, logo em seguida pressione CTRL + J, e configure seu documento como a imagem seguinte. Agora, vamos usar essa imagem abaixo ou uma outra qualquer para fazer o carregamento dela via actionscript, de preferência salve está imagem no mesmo diretório do seu [...]]]></description>
			<content:encoded><![CDATA[<p>Primeiro abra o flash e crie um novo arquivo do tipo “ActionScript 3.0, logo em seguida pressione CTRL + J, e configure seu documento como a imagem seguinte.</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2011/01/configuration_stage1.jpg"><img class="alignnone size-full wp-image-5927" src="http://www.mxstudio.com.br/wp-content/uploads/2011/01/configuration_stage1.jpg" alt="" width="600" height="399" /></a></p>
<p>Agora, vamos usar essa imagem abaixo ou uma outra qualquer para fazer o carregamento dela via actionscript, de preferência salve está imagem no mesmo diretório do seu arquivo flash.</p>
<p><a href="http://www.mxstudio.com.br/wp-content/uploads/2011/01/naruto.jpg"><img class="alignnone size-full wp-image-5928" src="http://www.mxstudio.com.br/wp-content/uploads/2011/01/naruto.jpg" alt="" width="450" height="319" /></a></p>
<p>Agora dentro do flash pressione F9 para abrir o painel “actions” e digite</p>
<pre lang="actionscript3">
//caminho relativo da imagem em relação ao arquivo flash
var urlImg:URLRequest = new URLRequest("naruto.jpg");
//classe loader utilizada para carrregar nossa imagem
var imgLoad:Loader = new Loader();
//método load precisa como parametro um objeto do tipo "URLRequest"
imgLoad.load(urlImg);
//adiciona o loader que no nosso caso é uma imagem na timeline
addChild(imgLoad);
</pre>
<p>Nossa imagem foi adicionada ao palco, vamos alterar a scala dela para 60% para percebermos as alterações ocorridas, digite</p>
<pre lang="actionscript3">
imgLoad.scaleX = .6;//.6 é igual á 0.6 que por sua vez é igual 60%
imgLoad.scaleY = .6;
</pre>
<p>Perceba que nossa imagem fico bem detonada, para suavizar esse desgaste na imagem, vamos criar uma função que vai adicionar um smothing em tempo de execução.</p>
<pre lang="actionscript3">
function suavizaImg(img:Loader):void
{
	//pega o contéudo do Loader e o transforma em um Bitmap
	var image:Bitmap = img.content as Bitmap;
	//ativando o smoothing
	image.smoothing = true;
}
</pre>
<p>Faça a chamada da função na linha debaixo onde estamos adicionando a imagem no palco e passe como parâmetro o objeto Loader, ficando assim</p>
<pre lang="actionscript3">
addChild(imgLoad);
suavizaImg(imgLoad);
</pre>
<p>Observe que vai acontecer um erro, esse diz que não pode acessar um método ou uma propriedade de referência nula.</p>
<p>Mas por que isso acontece? Quando utilizamos o método load da classe Loader fazemos o download do arquivo e no momento que fazemos essa chamada <code>suavizaImg(imgLoad);</code> esse download ainda não foi concluído. Solução: adicionar um evento que vai nos dizer quando esse download está completo.<br />
Vamos remover</p>
<pre lang="actionscript3">
addChild(imgLoad);
suavizaImg(imgLoad);
imgLoad.scaleX = .6;//.6 é igual á 0.6 que por sua vez é igual 60%
imgLoad.scaleY = .6;
</pre>
<p>e logo abaixo de
<pre lang="actionscript3"> imgLoad.load(urlImg);</pre>
<p> vamos adicionar o nosso evento</p>
<pre lang="actionscript3">imgLoad.contentLoaderInfo.addEventListener(Event.COMPLETE, imgCarregada);</pre>
<p>Observação: a função “imgCarregada” é responsável pelo evento ou seja, essa função apenas vai ser executada quando o download estiver completo e dentro dela vamos adicionar aquelas 2 linhas que agente apagou</p>
<pre lang="actionscript3">
function imgCarregada(e:Event):void
{
        //vamo remove o evento já que não vamos mais precisar dele
	imgLoad.contentLoaderInfo.removeEventListener(Event.COMPLETE, imgCarregada);

	addChild(imgLoad);
	imgLoad.scaleX = .6; //.6 é igual á 0.6 que por sua vez é igual 60%
	imgLoad.scaleY = .6;
	suavizaImg(imgLoad);
}
</pre>
<p>Faça alguns teste alterando scaleX e scaleY e ativando e desativando o smoothing.<br />
Pronto, chegamos ao fim do meu primeiro tutorial. Segue abaixo o código completo.</p>
<pre lang="actionscript3" line="1">
//caminho relativo da imagem em relação ao arquivo flash
var urlImg:URLRequest = new URLRequest("naruto.jpg");
//classe loader utilizada para carrregar nossa imagem
var imgLoad:Loader = new Loader();
//método load precisa como parametro um objeto do tipo "URLRequest"
imgLoad.load(urlImg);
//evento que vai nos dizer quando o download estiver concluido
imgLoad.contentLoaderInfo.addEventListener(Event.COMPLETE, imgCarregada);

function suavizaImg(img:Loader):void
{
	//pega o contéudo do Loader e o transforma em um Bitmap
	var image:Bitmap = img.content as Bitmap;
	//ativando o smoothing
	image.smoothing = true;
}

function imgCarregada(e:Event):void
{
	//vamo remove o evento já que não vamos mais precisar dele
	imgLoad.contentLoaderInfo.removeEventListener(Event.COMPLETE, imgCarregada);

	//adiciona o loader na timeline
	addChild(imgLoad);
	imgLoad.scaleX = .6;//.6 é igual á 0.6 que por sua vez é igual 60%
	imgLoad.scaleY = .6;
	suavizaImg(imgLoad);
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/adicionar-smoothing-em-tempo-de-execucao/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<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 [...]]]></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">
]]></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 [...]]]></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> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/novidades-do-flash-cs5-parte-3/feed/</wfw:commentRss>
		<slash:comments>1</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 [...]]]></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> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/novidades-do-flash-cs5-parte-2/feed/</wfw:commentRss>
		<slash:comments>2</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 [...]]]></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> </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 [...]]]></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. </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>
	</channel>
</rss>

