<?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>Francisco Prado &#187; ActionScript</title>
	<atom:link href="http://franciscoprado.com.br/tag/actionscript/feed/" rel="self" type="application/rss+xml" />
	<link>http://franciscoprado.com.br</link>
	<description>Mais um blog sobre Web, desenvolvimento e assuntos em geral...</description>
	<lastBuildDate>Sun, 29 Jan 2012 18:39:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>CASA Lib, a biblioteca ActionScript que é uma verdadeira &#8220;mão na roda&#8221;</title>
		<link>http://franciscoprado.com.br/2011/09/27/casa-lib-biblioteca-actionscript-framework/</link>
		<comments>http://franciscoprado.com.br/2011/09/27/casa-lib-biblioteca-actionscript-framework/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 14:53:15 +0000</pubDate>
		<dc:creator>Francisco</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[biblioteca]]></category>
		<category><![CDATA[casalib]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://franciscoprado.com.br/?p=1712</guid>
		<description><![CDATA[Neste post vou tratar sobre uma biblioteca que conheço há muito tempo mas que, curiosamente, nunca dei espaço para usar em um projeto: CASA Lib. A biblioteca, olhando por cima, tem recursos interessantes e que cobre muitos vácuos encontrados na linguagem AS 3, como, por exemplo, um método para remover um item determinado numa Array. ...]]></description>
			<content:encoded><![CDATA[<p>Neste post vou tratar sobre uma biblioteca que conheço há muito tempo mas que, curiosamente, nunca dei espaço para usar em um projeto: <a href="http://casalib.org/" target="_blank">CASA Lib</a>.</p>
<p>A biblioteca, olhando por cima, tem recursos interessantes e que cobre muitos vácuos encontrados na linguagem AS 3, como, por exemplo, um método para remover um item determinado numa Array. Para isso o CASA Lib oferece um objeto <a href="http://as3.casalib.org/docs/org_casalib_collection_List.html" target="_blank">List</a> que tem um método <em>removeItem()</em> que cobre esse vazio e facilita a remoção de um item, independentemente da sua posição:</p>
<pre>
var arr:List = new List(['francisco', 'joão', 'maria', 'daniel']);
arr.removeItem('joão');
trace(arr); // exibe francisco,maria,daniel
</pre>
<p>Outras classes úteis são <a href="http://as3.casalib.org/docs/package_org_casalib_ui.html" target="_blank">Key e KeyCombo</a>, que facilitam a manipulação de teclas pressionadas simultaneamente.</p>
<p>Mais um recurso bacana são os carregadores. Há para vários tipos, assim como o carregador em grupo (<a href="http://as3.casalib.org/docs/org_casalib_load_GroupLoad.html" target="_blank">GroupLoad</a>), que permite carregar vários objetos exibindo uma só porcentagem de progresso do conjunto. Carregar imagens, por exemplo, é mais simples do que escrever os objetos &#8220;na unha&#8221;:</p>
<pre>
var imageLoader:ImageLoad = new ImageLoad("imagem-de-exemplo.jpg");
imageLoader.addEventListener(LoadEvent.COMPLETE, onComplete);
imageLoader.start();

function onComplete(evt:LoadEvent):void
{
	addChild(imageLoader.contentAsBitmap);
}
</pre>
<p>Para ver outros recursos é recomendável ver a <a href="http://as3.casalib.org/docs/index.html" target="_blank">documentação</a>. Apesar de ser documentação há os exemplo de como usá-las.</p>
]]></content:encoded>
			<wfw:commentRss>http://franciscoprado.com.br/2011/09/27/casa-lib-biblioteca-actionscript-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usando Box2D no Flash / ActionScript 3.0 &#8211; tutorial básico</title>
		<link>http://franciscoprado.com.br/2011/06/13/box2d-actionscript-flash-tutorial/</link>
		<comments>http://franciscoprado.com.br/2011/06/13/box2d-actionscript-flash-tutorial/#comments</comments>
		<pubDate>Mon, 13 Jun 2011 17:06:12 +0000</pubDate>
		<dc:creator>Francisco</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[as3isolib]]></category>
		<category><![CDATA[biblioteca]]></category>
		<category><![CDATA[box2d]]></category>
		<category><![CDATA[física]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://franciscoprado.com.br/?p=1694</guid>
		<description><![CDATA[Garimpei muito na Web buscando um tutorial simples para o uso da biblioteca de física Box2D e que funcionasse no Flash. Encontrei códigos com formato antigo, que rodam em versões anteriores da biblioteca (ou em Flash Player anteriores), e principalmente pouco interessantes Foi então que resolvi experimentar usar por conta própria o manual do Box2D, ...]]></description>
			<content:encoded><![CDATA[<p>Garimpei muito na Web buscando um tutorial simples para o uso da biblioteca de física <a href="http://www.box2d.org/" target="_blank">Box2D</a> e que funcionasse no Flash. Encontrei códigos com formato antigo, que rodam em versões anteriores da biblioteca (ou em Flash Player anteriores), e principalmente pouco interessantes</p>
<p>Foi então que resolvi experimentar usar por conta própria o <a href="http://www.box2d.org/manual.html" target="_blank">manual do Box2D</a>, que tem um tutorial que, apesar de estar em C/C++, é muito didático. Adaptei o código para o Actionscript 3.0 e funcionou.</p>
<p>Para ver o programa funcionando usei a <a href="http://code.google.com/p/as3isolib/" target="_blank">as3isolib</a>, para geração de gráficos isométricos &#8211; a intenção é tornar visível o funcionamento. Porém, você pode usar o próprio trace() do Flash para exibir a posição da caixa que cai sobre um piso e dá uma leve quicada. Mais detalhes sobre o código veja no tutorial do manual.</p>
<pre>
package{
import flash.display.*;
import flash.events.*;
import Box2D.Dynamics.*;
import Box2D.Collision.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import as3isolib.display.primitive.IsoBox;
import as3isolib.display.scene.IsoScene;

public class Main extends Sprite{

public var world:b2World;
public var groundBodyDef, bodyDef:b2BodyDef;
public var body, groundBody:b2Body;
public var groundBox:b2PolygonShape = new b2PolygonShape();
public var dynamicBox:b2PolygonShape = new b2PolygonShape();
public var fixtureDef:b2FixtureDef = new b2FixtureDef();
public var timeStep:Number = Number(1 / 60);
public var velocityIterations:Number = 6;
public var positionIterations:Number = 2;

/*objetos as3isolib - se não quiser baixar a biblioteca você pode usar o trace() para exibir a posição da caixa*/
public var scene:IsoScene = new IsoScene();
public var groundIso:IsoBox = new IsoBox();
public var bodyIso:IsoBox = new IsoBox();

public function Main() {
stage.scaleMode = StageScaleMode.NO_SCALE;

// função que fará tudo se mover
stage.addEventListener(Event.ENTER_FRAME, update);

/* CÓDIGO BOX2D */
// criação do ambiente
world = new b2World(new b2Vec2(0, -10), true);

// criação do chão, onde a caixa irá cair
groundBodyDef = new b2BodyDef();
groundBodyDef.position.Set(250, -50);

// adicionando o corpo ao ambiente
groundBody = world.CreateBody(groundBodyDef);

groundBox.SetAsBox(50, 10);

groundBody.CreateFixture2(groundBox);

// a caixa que cairá
bodyDef = new b2BodyDef();
bodyDef.type = b2Body.b2_dynamicBody;
bodyDef.position.Set(250, 50);

body = world.CreateBody(bodyDef);

dynamicBox.SetAsBox(1, 1);

fixtureDef.shape = dynamicBox;
fixtureDef.density = 1;
fixtureDef.friction = 0.3;
fixtureDef.restitution = 0.1;

body.CreateFixture(fixtureDef);
// -X-

/* CÓDIGO AS3ISOLIB - NÃO ESSENCIAL */
// gráficos do chão
groundIso.setSize(50, 50, 10);

bodyIso.width = 10;
bodyIso.length = 10;
bodyIso.height = 10;

scene.hostContainer = this;
scene.addChild(bodyIso);
scene.addChild(groundIso);
// -X-
}

public function update(evt:Event):void {
// executando a ação física
world.Step(timeStep, velocityIterations, positionIterations);
world.ClearForces();

groundIso.x = groundBody.GetPosition().x;
groundIso.z = groundBody.GetPosition().y;

/* CÓDIGO AS3ISOLIB - NÃO ESSENCIAL */
bodyIso.x = body.GetPosition().x;
bodyIso.z = body.GetPosition().y;

scene.render();
// -x-
}
}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://franciscoprado.com.br/2011/06/13/box2d-actionscript-flash-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Detectando quais teclas estão pressionadas em ActionScript 3</title>
		<link>http://franciscoprado.com.br/2011/01/06/detectando-teclas-pressionadas-actionscript/</link>
		<comments>http://franciscoprado.com.br/2011/01/06/detectando-teclas-pressionadas-actionscript/#comments</comments>
		<pubDate>Thu, 06 Jan 2011 13:21:21 +0000</pubDate>
		<dc:creator>Francisco</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Dicas & Tutoriais]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[teclado]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://franciscoprado.com.br/?p=1651</guid>
		<description><![CDATA[É simples você saber qual tecla foi pressionada em ActionScript. Um pouco mais complicado é saber qual conjunto de teclas estão sendo pressionadas simultaneamente. Isto pode ser necessário em caso de games, como num de corrida, em que o usuário pressionará várias teclas ao mesmo tempo, como um botão para acelerar, outro para direcionar o ...]]></description>
			<content:encoded><![CDATA[<p>É simples você saber qual tecla foi pressionada em ActionScript. Um pouco mais complicado é saber qual conjunto de teclas estão sendo pressionadas simultaneamente. Isto pode ser necessário em caso de games, como num de corrida, em que o usuário pressionará várias teclas ao mesmo tempo, como um botão para acelerar, outro para direcionar o carro, e assim vai.</p>
<p>Algumas bibliotecas oferecem esse recurso, como o <a href="http://casalib.org/" target="_blank">CASALib</a>. No entanto basta um código simples para isso. A seguir, segue um exemplo em que são mostradas num campo de texto as teclas que estão sendo pressionadas num momento. No campo de texto será exibido os valores <em>keyCode </em>(a representação da tecla em número da <a href="http://pt.wikipedia.org/wiki/ASCII" target="_blank">tabela ASCII</a>) das teclas.</p>
<pre>
// campo de texto informativo
var output:TextField = new TextField();

// as teclas pressionadas
var arr_teclas:Array = new Array();

// listeners que detectarão o pressionamento de teclas
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);

// tamanho do texto e adicionando ao stage
output.text = "Teclas pressionadas: ";
output.scaleY = output.scaleX = 2;
output.width = 300;
addChild(output);

function keyDown(evt:KeyboardEvent):void {
	/* se não houver nenhuma tecla na array que
	 * corresponda à tecla pressionada,
	 * adiciona a atual à array */

	if (arr_teclas.indexOf(evt.keyCode) < 0) {
		arr_teclas.push(evt.keyCode);
	}

	// exibe as teclas pressionadas atualmente
	output.text = "Teclas pressionadas: " + arr_teclas.join();
}

function keyUp(evt:KeyboardEvent):void {
	/* Se a tecla deixou de ser pressionada,
	 * busca ela na array e a remove */

	if (arr_teclas.indexOf(evt.keyCode) >= 0) {
		arr_teclas = arr_teclas.splice(0, arr_teclas.indexOf(evt.keyCode));
	}

	// exibe as teclas pressionadas atualmente
	output.text = "Teclas pressionadas: " + arr_teclas.join();
}
</pre>
<p>Veja o resultado a seguir, pressionando teclas (dê foco ao SWF clicando no quadro abaixo):</p>
<div style="border:solid 1px;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://franciscoprado.com.br/wp-content/uploads/2011/01/Teclas1.swf" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://franciscoprado.com.br/wp-content/uploads/2011/01/Teclas.swf"></embed></object></div>
]]></content:encoded>
			<wfw:commentRss>http://franciscoprado.com.br/2011/01/06/detectando-teclas-pressionadas-actionscript/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Criando um sistema de partículas simples com ActionScript 3.0</title>
		<link>http://franciscoprado.com.br/2010/12/20/criando-sistema-particulas-actionscript-3/</link>
		<comments>http://franciscoprado.com.br/2010/12/20/criando-sistema-particulas-actionscript-3/#comments</comments>
		<pubDate>Mon, 20 Dec 2010 18:51:13 +0000</pubDate>
		<dc:creator>Francisco</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Dicas & Tutoriais]]></category>
		<category><![CDATA[efeitos]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[FX]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[TweenMax]]></category>

		<guid isPermaLink="false">http://franciscoprado.com.br/?p=1604</guid>
		<description><![CDATA[Há várias maneiras de como se criar partículas em Flash. Há desde bibliotecas que facilitam o trabalho e permitem criar efeitos excelentes (é o caso da Tweensy e a sua parte &#8211; ainda em beta &#8211; FX) até os tutoriais dificílimos disponíveis na Web, que geralmente envolvem muita matemática &#8211; e que são muito bons ...]]></description>
			<content:encoded><![CDATA[<p>Há várias maneiras de como se criar partículas em Flash. Há desde bibliotecas que facilitam o trabalho e permitem criar efeitos excelentes (é o caso da <a href="http://code.google.com/p/tweensy/wiki/TweensyFX" target="_blank">Tweensy e a sua parte &#8211; ainda em beta &#8211; FX</a>) até os tutoriais dificílimos disponíveis na Web, que geralmente envolvem muita matemática &#8211; e que são muito bons -, de sites como o <a href="http://www.flashandmath.com/" target="_blank">Flash &amp; Math</a>.</p>
<p>No entanto, até que não é muito complicado criar efeitos simples usando bibliotecas como a <a href="http://www.greensock.com/tweenmax/" target="_blank">TweenMax</a>. Com uma quantidade enxuta de linhas é possível fazer efeitos interessantes.</p>
<p>A seguir, posto um exemplo bem simples, mas que serve para ilustrar que usar métodos e métodos para controle de tempo e criação de efeitos são desnecessários usando TweenMax:</p>
<pre>
package
{
	import flash.display.*;
	import flash.events.*;
	import com.greensock.*; 

	/**
	 * ...
	 * @author Francisco Prado
	 */
	public class Main extends MovieClip
	{
		private var volume:int = 0;
		private var particulas:Array = new Array();

		public function Main():void
		{
			// inicia (ou desenha mais) "partículas"
			desenharParticula();
		}

		private function desenharParticula():void {
			var mc:MovieClip = new MovieClip();
			mc.graphics.beginFill(Math.round(Math.random()*0x6666ff));
			mc.graphics.drawCircle(0, 0, 5);
			mc.graphics.endFill();

			mc.x = 200;
			mc.y = 300;

			addChild(mc);

			// fazendo as "partículas" subirem e desaparecerem
			TweenMax.to(mc, Math.random() + 1,
			{ bezier: [
			{ x: mc.x, y: mc.y },
			{ x: (Math.random() * 50) + mc.x, y: 250 },
			{ x: (Math.random() * -50) + mc.x, y: 180 },
			{ x: mc.x, y: 80 }],
			orientToBezier:true, blurFilter: { blurX: 10, blurY: 10 }, alpha: 0, motionBlur:true,
			onComplete: function removendo():void {
					removeChild(mc);
					mc = null;
				}
			});

			// chama o método para adicionar novas partículas à cena
			TweenMax.to(this, 0, { delay: 0.05, onComplete: desenharParticula } );
		}
	}
}
</pre>
<p>O código fará o efeito seguinte:</p>
<div style="text-align: center; margin: 20px 0 20px 0;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://franciscoprado.com.br/wp-content/uploads/2010/12/NewProject.swf" /><embed type="application/x-shockwave-flash" width="400" height="400" src="http://franciscoprado.com.br/wp-content/uploads/2010/12/NewProject.swf"></embed></object></div>
<p>A ideia aqui não é mostrar necessariamente como fazer um sistema bonitinho de particulas, mas sim demonstrar que com uma linha do TweenMax é possível fazer um método para tempo e efeitos de cores e luz.</p>
<p>Usando ActionScript &#8220;puro&#8221; seria necessário apelar para uma variável <em>Timer</em>, uma outra linha para iniciar a contagem e uma função para manipular eventos no AS (<em>TimerEvent</em>).</p>
<p>Já com uma linha (no caso, a 48 do exemplo anterior) do TweenMax é possível fazer uma contagem (usando a propriedade de atraso <em>delay</em>) é possível fazer todas as coisas: o tempo e a chamada da função (no atributo <em>onComplete </em>é chamado o método que adicionará mais partículas).</p>
<p>A mesma situação na linha que fazem as partículas subirem e sumirem. Com o parâmetro <em>bezier </em>da TweenMax é possível fazer animações em curvas. Você pode conhecer mais efeitos testando <a href="http://www.greensock.com/tweenmax/" target="_blank">nesta página, na seção Plugins</a>.</p>
<p>Enfim, com um punhado de linhas é possível fazer efeitos bem interessantes, dispensando assim volumosos códigos chatos para caramba.</p>
<p>Acredito que, em se trantando de Flash &#8211; largamente utilizado na publicidade -, quanto menos linhas de código melhor, pois os prazos nem sempre são generosos (geralmente tudo é &#8220;pra ontem&#8221; <img src='http://franciscoprado.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ) e eficiência é sempre fundamental.</p>
]]></content:encoded>
			<wfw:commentRss>http://franciscoprado.com.br/2010/12/20/criando-sistema-particulas-actionscript-3/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Componente Scrollbar para Flash &#8211; grátis</title>
		<link>http://franciscoprado.com.br/2010/10/29/componente-scrollbar-flash-scroller/</link>
		<comments>http://franciscoprado.com.br/2010/10/29/componente-scrollbar-flash-scroller/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 14:41:37 +0000</pubDate>
		<dc:creator>Francisco</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[biblioteca]]></category>
		<category><![CDATA[componente]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://franciscoprado.com.br/?p=1592</guid>
		<description><![CDATA[Neste post deixo para download um componente simples, mas que é usado em 10 de cada 10 sites em Flash que contém texto: um scroller com movimento animado. Ele foi criado originalmente pelo pessoal do Free Flash Resources, mas a versão deles é separada em várias classes. A versão que posto aqui foi modificada por ...]]></description>
			<content:encoded><![CDATA[<p>Neste post deixo para download um componente simples, mas que é usado em 10 de cada 10 sites em Flash que contém texto: um scroller com movimento animado.</p>
<p>Ele foi criado originalmente pelo pessoal do <a href="http://www.flafolder.com/flash/" target="_blank">Free Flash Resources</a>, mas a versão deles é separada em várias classes. A versão que posto aqui foi modificada por mim, e contém os códigos ActionScript direto nas timelines dos clipes de filme. Em outras palavras, basta copiar e colar os clipes; nada de mover as classes AS dele para lá e para cá. Isso evita bagunça e que você tenha que reeditar códigos cada vez que for usar o componente.</p>
<p>O componente tem a parte gráfica e códigos customizáveis.</p>
<p><a href="http://franciscoprado.com.br/wp-content/uploads/2010/01/001_121.png" rel="lightbox[1592]"><img class="alignleft size-full wp-image-257" title="001_12" src="http://franciscoprado.com.br/wp-content/uploads/2010/01/001_121.png" alt="" width="24" height="24" /></a> <a href="http://franciscoprado.com.br/files/scrollbar.rar">Download</a>.</p>
<p>Veja o exemplo abaixo do funcionamento.</p>
]]></content:encoded>
			<wfw:commentRss>http://franciscoprado.com.br/2010/10/29/componente-scrollbar-flash-scroller/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flupie &#8211; usando ActionScript para animação de texto</title>
		<link>http://franciscoprado.com.br/2010/09/03/flupie-usando-actionscript-para-animacao-de-texto/</link>
		<comments>http://franciscoprado.com.br/2010/09/03/flupie-usando-actionscript-para-animacao-de-texto/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 15:47:46 +0000</pubDate>
		<dc:creator>Francisco</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[biblioteca]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://franciscoprado.com.br/?p=1575</guid>
		<description><![CDATA[A postagem é curta, mas é de coração e é isso que importa. Recebi a dica de um colega sobre uma biblioteca chamada Flupie, destinada a facilitar a criação de efeitos para textos em Flash. Ainda não tive condições de experimentar, mas pelos exemplos ela é uma mão na roda para gerar efeitos sofisticados de ...]]></description>
			<content:encoded><![CDATA[<p>A postagem é curta, mas é de coração e é isso que importa. Recebi a dica de um colega sobre uma biblioteca chamada <a href="http://flupie.net/blog/" target="_blank">Flupie, destinada a facilitar a criação de efeitos para textos em Flash</a>.</p>
<p>Ainda não tive condições de experimentar, mas pelos exemplos ela é uma mão na roda para gerar efeitos sofisticados de uma maneira bem simples. No site dela você encontra exemplos e tutoriais.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://flupie.net/blog/wp-content/uploads/2010/06/ta_sequence.swf" /><embed type="application/x-shockwave-flash" width="500" height="300" src="http://flupie.net/blog/wp-content/uploads/2010/06/ta_sequence.swf"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://franciscoprado.com.br/2010/09/03/flupie-usando-actionscript-para-animacao-de-texto/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Usando APE para simulação de física no ActionScript 3.0</title>
		<link>http://franciscoprado.com.br/2010/08/05/ape-simulacao-fisica-actionscript-3-0-biblioteca/</link>
		<comments>http://franciscoprado.com.br/2010/08/05/ape-simulacao-fisica-actionscript-3-0-biblioteca/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 18:23:01 +0000</pubDate>
		<dc:creator>Francisco</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ape]]></category>
		<category><![CDATA[biblioteca]]></category>
		<category><![CDATA[física]]></category>

		<guid isPermaLink="false">http://franciscoprado.com.br/?p=1565</guid>
		<description><![CDATA[Depois de um longo hiato, volto aqui para falar de uma biblioteca de física para ActionScript, a APE. Gostei muito desta biblioteca e a adotei. Existem similares, como a Box2D e a JigLib (esta última, para 3D), caso interesse, mas aqui postarei um pequeno exemplo básico de como funciona. No exemplo, mostro como é o ...]]></description>
			<content:encoded><![CDATA[<p>Depois de um longo hiato, volto aqui para falar de uma biblioteca de física para ActionScript, a <strong><a href="http://www.cove.org/ape/" target="_blank">APE</a></strong>. Gostei muito desta biblioteca e a adotei. Existem similares, como a Box2D e a JigLib (esta última, para 3D), caso interesse, mas aqui postarei um pequeno exemplo básico de como funciona.</p>
<p>No exemplo, mostro como é o funcionamento básico, e para demonstrar a flexibilidade da biblioteca, é mostrado como é possível realizar a detecção de colisão, misturando métodos comuns do AS 3.0 à objetos da biblioteca. O código foi criado usando <a href="http://www.flashdevelop.org/" target="_blank">FlashDevelop</a>.</p>
<pre>
package {
import flash.text.TextField;
import org.cove.ape.*;
import flash.events.Event;
import flash.display.Sprite;

public class Main extends Sprite {

// CRIANDO UMA "ESFERA"
public var esfera:CircleParticle = new CircleParticle(250, 10, 25);

// CRIANDO RETANGULO (SERÁ O "PISO")
public var piso:RectangleParticle = new RectangleParticle(150, 300, 300, 50, 0, true);

// O GRUPO QUE SERÁ O NOSSO "MUNDO" ONDE OS OBJETOS IRÃO INTERAGIR
public var grupo:Group = new Group();

public function Main() {

stage.frameRate = 60;
addEventListener(Event.ENTER_FRAME, run);

APEngine.init(1/4);
APEngine.container = this;

// CRIANDO A FORÇA DA GRAVIDADE
APEngine.addMasslessForce(new Vector(0, 2));

// ATIVANDO COLISÕES
grupo.collideInternal = true;

// ADICIONANDO AO CÍRCULO A FORÇA QUE O MOVIMENTARÁ
esfera.addForce(new Vector(5, 0));

// JUNTANDO AO GRUPO
grupo.addParticle(esfera);
grupo.addParticle(piso);

APEngine.addGroup(grupo);
}

private function run(evt:Event):void {
// PROCESSAMENTO DA AÇÃO
APEngine.step();
APEngine.paint();

// DETECÇÃO DE COLISÃO - AO COLIDIREM SERÁ EXIBIDO UM TEXTO
if (esfera.sprite.hitTestObject(piso.sprite)) {
var txt:TextField = new TextField();
txt.text = "COLIDIU!";
addChild(txt);
}
}
}
}
</pre>
<p>Numa próxima postagem darei a dica de como associar essa biblioteca com a <a href="http://code.google.com/p/as3isolib/" target="_blank">as3isolib</a> (para criação de gráficos isométricos).</p>
]]></content:encoded>
			<wfw:commentRss>http://franciscoprado.com.br/2010/08/05/ape-simulacao-fisica-actionscript-3-0-biblioteca/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Usando SVG através do ActionScript &#8211; AS3 SVG Renderer</title>
		<link>http://franciscoprado.com.br/2010/05/09/svg-actionscript-render-biblioteca-as3/</link>
		<comments>http://franciscoprado.com.br/2010/05/09/svg-actionscript-render-biblioteca-as3/#comments</comments>
		<pubDate>Sun, 09 May 2010 12:40:46 +0000</pubDate>
		<dc:creator>Francisco</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Dicas & Tutoriais]]></category>
		<category><![CDATA[biblioteca]]></category>
		<category><![CDATA[dica]]></category>
		<category><![CDATA[svg]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://franciscoprado.com.br/?p=1312</guid>
		<description><![CDATA[É possível carregar arquivos gráficos SVG (formato de arquivos de desenho em vetor, organizados em modo XML) através do ActionScript como se fossem Sprites. A biblioteca AS3 SVG Renderer suporta boa parte dos recursos oferecidos pela linguagem SVG. Criada por um brasileiro (veja o blog), ela ainda não suporta o carregamento de arquivos de imagem ...]]></description>
			<content:encoded><![CDATA[<p>É possível carregar arquivos gráficos <a href="http://pt.wikipedia.org/wiki/Svg" target="_blank">SVG</a> (formato de arquivos de desenho em vetor, organizados em modo XML) através do ActionScript como se fossem Sprites.</p>
<p>A biblioteca <a href="http://code.google.com/p/as3svgrendererlib/" target="_blank">AS3 SVG Renderer</a> suporta boa parte dos recursos oferecidos pela linguagem SVG. Criada por um brasileiro (<a title="Lucas Lorentz" href="http://www.lucaslorentz.com.br/2009/07/as3-svg-renderer.html" target="_blank">veja o blog</a>), ela ainda não suporta o carregamento de arquivos de imagem (como JPEG, PNG, etc., um recurso disponível no SVG), o que não chega a atrapalhar em nada (haja vista que é possível carregar Bitmaps usando classes nativas do ActionScript). Muitos outros recursos estão disponíveis (desenhos de formas, linhas, transformações como rotação e inclinação, entre outros).</p>
<p>O uso da biblioteca é muito simples: basta carregar o arquivo como se fosse um XML, usando o <em>package </em>do ActionScript. O programa Adobe Flash torna-se dispensável.</p>
<p>O exemplo a seguir carrega e exibe um SVG carregado a partir de uma URL qualquer.<span id="more-1312"></span></p>
<p>[actionscript3]<br />
package<br />
{<br />
	import flash.display.MovieClip;<br />
	import flash.display.Sprite;</p>
<p>	// A biblioteca AS3 SVG RENDERER<br />
	import com.lorentz.SVG.*;</p>
<p>	import flash.events.Event;</p>
<p>	import flash.net.URLLoader;<br />
	import flash.net.URLRequest;</p>
<p>	/**<br />
	 * &#8230;<br />
	 * @author FRANCISCO PRADO<br />
	 */<br />
	public class Main extends Sprite<br />
	{<br />
		public var mc:MovieClip = new MovieClip();</p>
<p>		public function Main() {<br />
			// Carregador da figura<br />
			var loader:URLLoader = new URLLoader();<br />
			loader.addEventListener(Event.COMPLETE, onComplete);</p>
<p>			// Iniciando o carregamento<br />
			loader.load(new URLRequest(&quot;URL do arquivo.svg&quot;));</p>
<p>			addChild(mc);<br />
		}</p>
<p>		public function onComplete(evt:Event):void {<br />
			var shp:Sprite;<br />
			var svg:XML = new XML(evt.target.data);</p>
<p>			// Renderizará o arquivo SVG<br />
			shp = new SVGRenderer(svg);</p>
<p>			// Adiciona ao movieclip<br />
			mc.addChild(shp);<br />
		}<br />
	}<br />
}<br />
[/actionscript3]</p>
]]></content:encoded>
			<wfw:commentRss>http://franciscoprado.com.br/2010/05/09/svg-actionscript-render-biblioteca-as3/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Mais sobre ActionScript 3.0 &#8211; programas, bibliotecas e dicas</title>
		<link>http://franciscoprado.com.br/2010/04/10/mais-sobre-actionscript-3-0-programas-bibliotecas-e-dicas-library-app-tutorial/</link>
		<comments>http://franciscoprado.com.br/2010/04/10/mais-sobre-actionscript-3-0-programas-bibliotecas-e-dicas-library-app-tutorial/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 13:23:35 +0000</pubDate>
		<dc:creator>Francisco</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Dicas & Tutoriais]]></category>
		<category><![CDATA[biblioteca]]></category>
		<category><![CDATA[dica]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[programa]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://franciscoprado.com.br/?p=1220</guid>
		<description><![CDATA[Para reanimar um pouco este blog vou postar aqui algumas dicas de programas e de bibliotecas para quem programa/quer programar com ActionScript 3.0. Programas FlashDevelop &#8211; não conheço todas as IDEs para ActionScript, mas acredito que esta seja uma das melhores &#8211; senão a melhor. Ela automaticamente importa os packages de classes que você instancia, ...]]></description>
			<content:encoded><![CDATA[<p>Para reanimar um pouco este blog vou postar aqui algumas dicas de programas e de bibliotecas para quem programa/quer programar com <a href="http://pt.wikipedia.org/wiki/ActionScript" target="_blank">ActionScript</a> 3.0.</p>
<h2>Programas</h2>
<p><a href="http://www.flashdevelop.org/" target="_blank"><strong>FlashDevelop</strong></a> &#8211; não conheço todas as IDEs para ActionScript, mas acredito que esta seja uma das melhores &#8211; senão a melhor. Ela automaticamente importa os <em>packages </em>de classes que você instancia, seu auto-complete é poderosíssimo, além de ser leve e permitir a compilação usando o Flex SDK (para configurar isso <a href="http://franciscoprado.com.br/wp-admin/post-new.php" target="_blank">veja este tutorial</a>).</p>
<p>Funciona em Windows (não sei se há versão para Mac, e não acredito que rode/possa rodar em Linux, uma vez que ele foi criado sobre o Microsoft .NET Framework &#8211; tentei emular e não deu certo).</p>
<p><a href="http://pt.wikibooks.org/wiki/ActionScript/Ambientes_de_desenvolvimento_para_Actionscript" target="_blank"><strong>Ambientes de Desenvolvimento para ActionScript</strong></a> &#8211; aqui segue uma lista com outros programas (e seus links) para programar em ActionScript.</p>
<p><a href="http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK;jsessionid=7CE55387459E6BB10A21B7E756C408EF" target="_blank"><strong>Flex SDK</strong></a> &#8211; necessário ter caso queira compilar seus programas via FlashDevelop, entre outros. É <em>opensource</em>.</p>
<h2>Tutoriais</h2>
<p><a href="http://pt.wikibooks.org/wiki/ActionScript" target="_blank"><strong>Wikilivro em português</strong></a> &#8211; wikilivro sobre AS 3.0 hospedado no Wikilivros (da Wikipédia).</p>
<p><strong>Tutorial do Mário Santos (em PDF) – <a href="http://msdevstudio.com/blog/2008/06/30/tutorial-action-script-3-parte-i-o-livro/" target="_blank">parte 1</a> e <a href="http://msdevstudio.com/blog/go.php?http://msdevstudio.com/blog/download-manager.php?id=28" target="_blank">parte 2</a></strong> &#8211; talvez os mais populares tutoriais sobre AS 3.0 em português (de Portugal) da Web.</p>
<h2>Bibliotecas</h2>
<p>Você pode ver uma <a href="http://franciscoprado.com.br/2010/01/11/rapidas-sobre-actionscript-3-0/" target="_blank">postagem minha antiga sobre algumas bibliotecas</a>. Há sobre bibliotecas 3D apenas. Aqui vou indicar mais algumas bibliotecas que talvez não sejam tão conhecidas.</p>
<p><strong><a href="http://code.google.com/p/as3isolib/" target="_blank">AS3ISOlib</a></strong> &#8211; biblioteca para geração de gráficos <a href="http://pt.wikipedia.org/wiki/Perspectiva_%28gr%C3%A1fica%29#Perspectiva_isom.C3.A9trica" target="_blank">isométricos</a>. A biblioteca é bem fácil de se usar e bem interessante. Ela foi feita para ser usada com o Adobe Flash apenas. Porém, mudando algumas propriedades de umas classes consegui fazer ela ser usada com o FlashDevelop (em outras palavras, mudei os objetos Vector, disponíveis apenas nos Adobe Flash CSx para Array, fácil. <img src='http://franciscoprado.com.br/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  ).</p>
<p><strong><a href="http://www.jiglibflash.com/" target="_blank">JigLibFlash</a></strong> &#8211; <em>engine </em>para simulação de física em 3D. Ela é ligada para fazer simulação usando em conjunto a biblioteca Papervision 3D, estritamente &#8211; mas há &#8220;plugins&#8221; para se utilizá-la em conjunto com Away3D, Sandy3D e outras.</p>
<p>O problema dela é esse: você não pode usá-la livremente (sem estar em conjunto com uma biblioteca 3D &#8211; você tem que estar atrelado a uma&#8230;). Os autores escreveram no blog deles que ainda pretendem mudar a arquitetura da biblioteca a fim de torná-la utilizável por qualquer outro modo &#8211; o que é uma boa notícia.</p>
<p><a href="http://not-so-stupid.com/open-source/wow-engine-en/" target="_blank"><strong>WOW 3D</strong></a> &#8211; outra <em>engine</em> de física em 3D. É baseada na <a href="http://www.cove.org/ape/" target="_blank">APE</a>, uma outra <em>engine</em> porém 2D. Esta aqui usa em conjunto a biblioteca Sandy3D para geração de gráficos 3D, apenas.</p>
]]></content:encoded>
			<wfw:commentRss>http://franciscoprado.com.br/2010/04/10/mais-sobre-actionscript-3-0-programas-bibliotecas-e-dicas-library-app-tutorial/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>XML e Texto no ActionScript 3.0 &#8211; Tutoriais</title>
		<link>http://franciscoprado.com.br/2010/01/31/xml-e-texto-no-actionscript-3-0-tutoriais/</link>
		<comments>http://franciscoprado.com.br/2010/01/31/xml-e-texto-no-actionscript-3-0-tutoriais/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 11:24:51 +0000</pubDate>
		<dc:creator>Francisco</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://franciscoprado.com.br/?p=824</guid>
		<description><![CDATA[Segue as dicas dos artigos (90% completos) sobre uso de campos de texto no AS 3.0 e uso de XML. Estou sem postagem séria no momento e não rascunhei nada. Mas esses artigos, ainda a serem completados, já contêm bastante coteúdo. O artigo sobre campos de texto já tem quase tudo a respeito sobre o ...]]></description>
			<content:encoded><![CDATA[<p>Segue as dicas dos artigos (90% completos) sobre uso de <a href="http://pt.wikibooks.org/wiki/ActionScript/Tipos_de_campos_de_texto" target="_blank">campos de texto no AS 3.0</a> e <a href="http://pt.wikibooks.org/wiki/ActionScript/Usando_XML_com_ActionScript" target="_blank">uso de XML</a>.</p>
<p>Estou sem postagem séria no momento e não rascunhei nada. Mas esses artigos, ainda a serem completados, já contêm bastante coteúdo.</p>
<p>O artigo sobre campos de texto já tem quase tudo a respeito sobre o assunto, com exceção ao uso de formatação com HTML e CSS (a ser inserido).</p>
<p>O sobre XML, mais completo, ainda não tem conteúdo a respeito da remoção e inserção de elementos e envio de dados. De todo resto, está completo.</p>
<p>O endereço do wikilivro é este aqui: <a href="http://franciscoprado.com.br/wp-content/uploads/2010/01/book_open.png" rel="lightbox[824]"><img class="alignnone size-full wp-image-373" title="book_open" src="http://franciscoprado.com.br/wp-content/uploads/2010/01/book_open.png" alt="" width="16" height="16" /></a><a href="http://pt.wikibooks.org/wiki/ActionScript">http://pt.wikibooks.org/wiki/ActionScript</a></p>
]]></content:encoded>
			<wfw:commentRss>http://franciscoprado.com.br/2010/01/31/xml-e-texto-no-actionscript-3-0-tutoriais/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

