<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Bruno Mikoski</title>
	
	<link>http://www.brunomikoski.com</link>
	<description>RIA Developer</description>
	<pubDate>Mon, 05 Jan 2009 18:52:34 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/BrunoMikoski" type="application/rss+xml" /><item>
		<title>Primeiros passos com o SDK da Apple! Hello World Tutorial</title>
		<link>http://feeds.feedburner.com/~r/BrunoMikoski/~3/503608173/</link>
		<comments>http://www.brunomikoski.com/2009/01/05/tutorial-hello-world-no-iphone-com-o-sdk-da-apple/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 18:47:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Objective C]]></category>

		<category><![CDATA[Tutorial]]></category>

		<category><![CDATA[iPhone]]></category>

		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Cocoa]]></category>

		<category><![CDATA[Hello World]]></category>

		<category><![CDATA[SDK]]></category>

		<guid isPermaLink="false">http://www.brunomikoski.com/?p=59</guid>
		<description><![CDATA[Olá a todos! Apos um período bem turbulento, muitos jobs, muitas coisas rolando um projeto gigante de natal: www.natalfeitocrianca.com.br, para o HSBC, estou de volta, para tentar manter alguns posts regulamente!
Irei falar hoje sobre o iPhone, que é minha meta para esse ano, dominar o máximo possível essa nova ferramenta que veio para ficar no [...]]]></description>
			<content:encoded><![CDATA[<p>Olá a todos! Apos um período bem turbulento, muitos jobs, muitas coisas rolando um projeto gigante de natal: <a href="http://www.natalfeitocrianca.com.br" target="_blank">www.natalfeitocrianca.com.br</a>, para o HSBC, estou de volta, para tentar manter alguns posts regulamente!</p>
<p>Irei falar hoje sobre o iPhone, que é minha meta para esse ano, dominar o máximo possível essa nova ferramenta que veio para ficar no mercado, não como um Celular, e sim como um padrão mobile, com sua Apple Store, e sua facilidade de desenvolvimento, com sua tela interativa e intuitiva, entre muitos outros fatores que todos devem conhecer muito bem! Vou começar com alguem bem, bem simples! Porem ja da uma pequena ajuda na hora para toda linguagem de programação!</p>
<p>Primeiramente gostaria de falar que não sou um experiente no iPhone, estou aprendendo e justamente para fixar melhor meu aprendizado quero compartilhar com todos que quiserem também.<br />
Corro o risco de falar algo errado em algum momento, ou não mostrar a melhor maneira de se fazer tal coisa ou outra coisa, porem estou aqui para ajudar o máximo possível! Em cima disso, vamos a alguns detalhes:</p>
<ul>
<li>Para desenvolver para o iPhone é necessario um MAC (duhhh), sei que parece meio obvio, porem acredito que algumas pessoas não saibam disso, existem algumas maneiras de desenvolver no Windows, porem são bem complexas.</li>
<li>Para testar os aplicativos no iPhone é necessario ter uma conta de developer da Apple, que custa U$99 dolares, e junto com isso você ganha acesso a muitas e muias coisas (videos, foruns, exemplos), um preço bem justo a ser pago</li>
<li>Quem nunca programou em linguagem nenhuma, não vai conseguir se sair muito bem, é necessário saber o mínimo de <a href="http://pt.wikipedia.org/wiki/Cocoa" target="_blank">Cocoa</a>, e <a href="http://pt.wikipedia.org/wiki/Objective-C" target="_blank"><span>Objective-C</span></a>, recomendo o seguinte site: http://cocoadevcentral.com/d/learn_cocoa_two/ muito bom essa parte!</li>
<li>Paciência e muita pesquisa ajudam muito, existem muitos e muitos sites hoje em dia falando sobre isso, vou reunir alguns e postar aqui assim que possivel!</li>
</ul>
<p>Primeira coisa a ser feita:</p>
<p>Download do SDK da Apple, você pode realizar o <a href="http://developer.apple.com/iphone/" target="_blank">download dele aqui</a> <em>(você precisa fazer um cadastro gratis no site da apple, para fazer o download)</em>, ele vem com todo o conjunto de ferramentas necessario para iniciar o desenvolvimento de um aplicativo para o iPhone!</p>
<p>Feito isso, vamos a nossa ferramenta de desenvolvimento, bem vindo ao Xcode!</p>
<div id="attachment_61" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem1.png" rel="lightbox[59]"><img class="size-medium wp-image-61" title="imagem1" src="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem1-300x215.png" alt="XCode main screen" width="300" height="215" /></a><p class="wp-caption-text">XCode Main Screen!</p></div>
<p>É aqui que todo o desenvolvimento para o iPhone é feito, provavelmente não é a unica maneira, mais é aque tenho utilizado!</p>
<p>Vamos criar um novo projeto View-Based Application:<br />
<a href="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem2.png" rel="lightbox[59]"><img class="aligncenter size-medium wp-image-62" title="imagem2" src="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem2-300x230.png" alt="" width="300" height="230" /></a>De o nome para ele de HelloWorld, e salve o mesmo.</p>
<p>Agora você vera a seguinte tela:</p>
<p style="text-align: center;"><a href="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem3.png" rel="lightbox[59]"><img class="size-medium wp-image-63 aligncenter" title="imagem3" src="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem3-300x220.png" alt="" width="300" height="220" /></a></p>
<p>Isso é o core de todo aplicativo, todo projeto novo criado vira com os arquivos, não vou entrar uma definição muito correta de todos os termos, mais basicamente:</p>
<ul>
<li>Arquivos <strong>.xbi</strong> são arquivos que contem uma visualização, que pode ser alterada pelo interface builder, que mostrarei daqui a pouco</li>
<li>Arquivos <strong>.h</strong> são os headers de todas as classes, aonde declaramos funções e variáveis</li>
<li>Arquivos <strong>.m </strong>são as classes propriamente ditas, aonde construimos a mesma.</li>
</ul>
<p>Primeiramente vamos editar o nosso arquivo .xib, essa parte é um pouco complicada de explicar mesmo, vou tentar postar um passo a passo de cada um deles, mais qualquer duvida, não exite em perguntar.<br />
Dentro da pasta <strong>Resources</strong> existe um arquivo chamado: <strong>HelloWorldViewController.xib</strong>, vamos dar um duplo click nele, para ele abrir no interface builder:<br />
<a href="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem4.png" rel="lightbox[59]"><img class="aligncenter size-medium wp-image-65" title="imagem4" src="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem4.png" alt="" width="178" height="78" /></a>Ele vai abrir da seguinte maneira para nós:<br />
<a href="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem5.png" rel="lightbox[59]"><img class="aligncenter size-medium wp-image-66" title="imagem5" src="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem5-300x187.png" alt="" width="300" height="187" /></a>Temos a visualização dos seguintes itens: Inspector / View / Controlador / Library.<br />
Para este exemplo vamos precisar de 2 itens, 1 Text Label, e 1 Round Rect Button, precisa simplesmente arrastar da library para o seu view, para achar os itens, no canto inferior da LIbrary existe um finder, basta começar a digitar que eles ja aparecem:</p>
<p><a href="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem6.png" rel="lightbox[59]"><img class="aligncenter size-medium wp-image-67" title="imagem6" src="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem6-135x300.png" alt="" width="135" height="300" /></a>Vamos arrastar ambos para o nosso View, deixando da seguinte maneira:<br />
<a href="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem7.png" rel="lightbox[59]"><img class="aligncenter size-medium wp-image-68" title="imagem7" src="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem7-206x299.png" alt="" width="206" height="299" /></a></p>
<p>Pronto, pode salvar e fechar o mesmo, agora dentro da pasta <strong>Classes, </strong>abra o arquivo: <strong>HelloWorldViewController.h:</strong></p>
<p style="text-align: center;"><a href="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem8.png" rel="lightbox[59]"><img class="size-medium wp-image-69 aligncenter" title="imagem8" src="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem8-300x220.png" alt="" width="300" height="220" /></a></p>
<p style="text-align: left;">Agora precisamos iniciar o nosso label e o nosso botão:</p>
<p style="text-align: left;"><a href="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem9.png" rel="lightbox[59]"><img class="aligncenter size-medium wp-image-71" title="imagem9" src="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem9-300x220.png" alt="" width="300" height="220" /></a></p>
<p style="text-align: left;">
<pre class="c">&nbsp;
<span style="color: #339933;">#import &lt;UIKit/UIKit.h&gt;</span>
&nbsp;
@interface HelloWorldViewController : UIViewController
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">//Criando objeto da classe label</span>
	IBOutlet UILabel *meuLabel;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #808080; font-style: italic;">//declarando função para o botão</span>
-<span style="color: #66cc66;">&#40;</span>IBAction<span style="color: #66cc66;">&#41;</span>showLabel;
&nbsp;
<span style="color: #808080; font-style: italic;">//Iniciando minha variavel Label</span>
@property<span style="color: #66cc66;">&#40;</span>nonatomic, retain<span style="color: #66cc66;">&#41;</span> UILabel *meuLabel;
&nbsp;</pre>
<p>Agora vamos até o arquivo: <strong>HelloWorldViewController.m</strong>, aonde criaremos nossa função:<br />
<a href="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem10.png" rel="lightbox[59]"><img src="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem10-300x220.png" alt="" title="imagem10" width="300" height="220" class="aligncenter size-medium wp-image-75" /></a></p>
<pre class="c">&nbsp;
<span style="color: #339933;">#import &quot;HelloWorldViewController.h&quot;</span>
&nbsp;
@implementation HelloWorldViewController
<span style="color: #808080; font-style: italic;">//Declarando minha variavel como publica</span>
@synthesize meuLabel;
&nbsp;
<span style="color: #808080; font-style: italic;">//Criando a função para clique no botão</span>
-<span style="color: #66cc66;">&#40;</span>IBAction<span style="color: #66cc66;">&#41;</span>showLabel
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">//Setando meu texto para Hello World</span>
	<span style="color: #66cc66;">&#91;</span>meuLabel setText:@<span style="color: #ff0000;">&quot;Hello World&quot;</span><span style="color: #66cc66;">&#93;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;</pre>
<p>Se tudo correu bem até agora, você deve poder clicar no <strong>Build and Go</strong> sem erro algum, porem não vai funcionar ainda, porque precisamos linkar nossas variaveis, novamente vamos para o Interface Builder, duplo clique no <strong>HelloWorldViewController.xib</strong>, você vai precisar arrastar com o botão direito do mouse o objeto File's Owner até em cima do label, como na imagem abaixo:<br />
<a href="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem13.png" rel="lightbox[59]"><img src="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem13-300x187.png" alt="" title="imagem13" width="300" height="187" class="alignnone size-medium wp-image-77" /></a></p>
<p>E a mesma coisa deve ser feita, só que agora para o botão chamando o evento ShowLabel:<br />
<a href="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem14.png" rel="lightbox[59]"><img src="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem14-300x187.png" alt="" title="imagem14" width="300" height="187" class="aligncenter size-medium wp-image-78" /></a></p>
<p>Salve novamente, e agora va novamente em Build and Go!<br />
<a href="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem11.png" rel="lightbox[59]"><img src="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem11.png" alt="" title="imagem11" width="77" height="54" class="aligncenter size-medium wp-image-79" /></a></p>
<p>Se tudo correr bem, agora você deve conseguir testar a aplicação funcionando!<br />
<a href="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem15.png" rel="lightbox[59]"><img src="http://www.brunomikoski.com/wp-content/uploads/2009/01/imagem15-161x300.png" alt="" title="imagem15" width="161" height="300" class="alignnone size-medium wp-image-80" /></a></p>
<p>e é isso, é bem simples, e bem por cima não expliquei nada muito a fundo, na verdade não expliquei nem a raso, mais ja é alguma coisa para sair do zero!<br />
Valeu!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunomikoski.com/2009/01/05/tutorial-hello-world-no-iphone-com-o-sdk-da-apple/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.brunomikoski.com/2009/01/05/tutorial-hello-world-no-iphone-com-o-sdk-da-apple/</feedburner:origLink></item>
		<item>
		<title>Snippet | Remover itens duplicados em uma Array AS3</title>
		<link>http://feeds.feedburner.com/~r/BrunoMikoski/~3/383213725/</link>
		<comments>http://www.brunomikoski.com/2008/09/04/snippet-remover-itens-duplicados-em-uma-array-as3/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 12:31:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Actionscript 3]]></category>

		<category><![CDATA[snippet]]></category>

		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.brunomikoski.com/?p=57</guid>
		<description><![CDATA[Snippet rapidinho, achado no site do Ach:
&#160;
var arr:Array = &#91;&#34;a&#34;,&#34;b&#34;,&#34;b&#34;,&#34;c&#34;,&#34;b&#34;,&#34;d&#34;,&#34;c&#34;&#93;;
&#160;
var z:Array = arr.filter&#40;function &#40;a:*,b:int,c:Array&#41;:Boolean
&#123;
return &#40;&#40;z ? z : z = new Array&#40;&#41;&#41;.indexOf&#40;a&#41; &#62;= 0 ? false : &#40;z.push&#40;a&#41; &#62;= 0&#41;&#41;;
 &#125;, this&#41;;
&#160;
trace&#40;z&#41;;
&#160;
]]></description>
			<content:encoded><![CDATA[<p>Snippet rapidinho, achado no site do <a href="http://www.razorberry.com/blog/archives/2008/09/03/as3-removing-duplicates-from-an-array/" target="_blank">Ach</a>:</p>
<pre class="actionscript">&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> arr:<span style="color: #0066CC;">Array</span> = <span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;a&quot;</span>,<span style="color: #ff0000;">&quot;b&quot;</span>,<span style="color: #ff0000;">&quot;b&quot;</span>,<span style="color: #ff0000;">&quot;c&quot;</span>,<span style="color: #ff0000;">&quot;b&quot;</span>,<span style="color: #ff0000;">&quot;d&quot;</span>,<span style="color: #ff0000;">&quot;c&quot;</span><span style="color: #66cc66;">&#93;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> z:<span style="color: #0066CC;">Array</span> = arr.<span style="color: #006600;">filter</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span>a:*,b:<span style="color: #0066CC;">int</span>,c:<span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Boolean</span>
<span style="color: #66cc66;">&#123;</span>
<span style="color: #b1b100;">return</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>z ? z : z = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #0066CC;">indexOf</span><span style="color: #66cc66;">&#40;</span>a<span style="color: #66cc66;">&#41;</span> &gt;= <span style="color: #cc66cc;">0</span> ? <span style="color: #000000; font-weight: bold;">false</span> : <span style="color: #66cc66;">&#40;</span>z.<span style="color: #0066CC;">push</span><span style="color: #66cc66;">&#40;</span>a<span style="color: #66cc66;">&#41;</span> &gt;= <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
 <span style="color: #66cc66;">&#125;</span>, <span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>z<span style="color: #66cc66;">&#41;</span>;
&nbsp;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.brunomikoski.com/2008/09/04/snippet-remover-itens-duplicados-em-uma-array-as3/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.brunomikoski.com/2008/09/04/snippet-remover-itens-duplicados-em-uma-array-as3/</feedburner:origLink></item>
		<item>
		<title>Snippet | Utilizando o Hand Cursor sobre botões com texto dinamico!</title>
		<link>http://feeds.feedburner.com/~r/BrunoMikoski/~3/368161192/</link>
		<comments>http://www.brunomikoski.com/2008/08/18/snippet-utilizando-o-hand-cursor-sobre-botoes-com-texto-dinamico/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 14:56:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Actionscript 3]]></category>

		<category><![CDATA[snippet]]></category>

		<category><![CDATA[button]]></category>

		<category><![CDATA[textfield]]></category>

		<guid isPermaLink="false">http://www.brunomikoski.com/?p=52</guid>
		<description><![CDATA[Um pequeno snippet rapidinho!
Quando um botão é criado dinamicamente em cima de um movieclip, com um textfield sobre ele, o flash não reconhece a area do movieclip como status de over, ou seja, ele não aparece a maozinha, como visto no exemplo abaixo:
&#160;
hit.buttonMode = true;
hit.useHandCursor = true;
&#160;
(Please open the article to see the flash file [...]]]></description>
			<content:encoded><![CDATA[<p>Um pequeno snippet rapidinho!</p>
<p>Quando um botão é criado dinamicamente em cima de um movieclip, com um textfield sobre ele, o flash não reconhece a area do movieclip como status de over, ou seja, ele não aparece a maozinha, como visto no exemplo abaixo:</p>
<pre class="actionscript">&nbsp;
hit.<span style="color: #006600;">buttonMode</span> = <span style="color: #000000; font-weight: bold;">true</span>;
hit.<span style="color: #0066CC;">useHandCursor</span> = <span style="color: #000000; font-weight: bold;">true</span>;
&nbsp;</pre>
<p><script type="text/javascript" src="http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/js/swfobject.js"></script></p><div class="embedflash" id="swfid687c8ed0ce2ac43ad75fe20eb850c3b7"><small>(Please open the article to see the flash file or player.)</small></div><p style="padding:0px;margin:0px;"><script type="text/javascript">
				var flashvars = {}; var params = {}; var attributes = {};params.allowfullscreen = "true"; params.allowscriptaccess = "always";
				swfobject.embedSWF("http://www.brunomikoski.com/wp-content/uploads/2008/08/exemple.swf","swfid687c8ed0ce2ac43ad75fe20eb850c3b7","168","50","9.0.0","http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/swf/expressInstall.swf",flashvars,params,attributes);
		</script></p>
<p>para resolver isso basta ajustar com o seguinte código:</p>
<pre class="actionscript">&nbsp;
hit.<span style="color: #006600;">mouseChildren</span> = <span style="color: #000000; font-weight: bold;">false</span>;
&nbsp;</pre>
<p>e prontinho:</p>
<p><script type="text/javascript" src="http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/js/swfobject.js"></script></p><div class="embedflash" id="swfida8108600923ace7ee24d940dd8091e75"><small>(Please open the article to see the flash file or player.)</small></div><p style="padding:0px;margin:0px;"><script type="text/javascript">
				var flashvars = {}; var params = {}; var attributes = {};params.allowfullscreen = "true"; params.allowscriptaccess = "always";
				swfobject.embedSWF("http://www.brunomikoski.com/wp-content/uploads/2008/08/exemple-solved.swf","swfida8108600923ace7ee24d940dd8091e75","168","50","9.0.0","http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/swf/expressInstall.swf",flashvars,params,attributes);
		</script></p>
<p>isso ai!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunomikoski.com/2008/08/18/snippet-utilizando-o-hand-cursor-sobre-botoes-com-texto-dinamico/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.brunomikoski.com/2008/08/18/snippet-utilizando-o-hand-cursor-sobre-botoes-com-texto-dinamico/</feedburner:origLink></item>
		<item>
		<title>Source Acquaplay - Jogo desenvolvido em APE + Actionscript 3!</title>
		<link>http://feeds.feedburner.com/~r/BrunoMikoski/~3/359623688/</link>
		<comments>http://www.brunomikoski.com/2008/08/08/source-acquaplay-jogo-desenvolvido-em-ape-actionscript-3/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 18:02:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[APE]]></category>

		<category><![CDATA[Actionscript 3]]></category>

		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.brunomikoski.com/?p=39</guid>
		<description><![CDATA[
Fala galera!
Vou postar um pequeno jogo que desenvolvi pela Midia Digital, é um joguinho bem antigo! Quem é dos anos 90 lembra dele, consistia basicamente em apertar 2 botões tentando fazer com que as bolinhas ficassem em 2 spots!

hahah explicação bem estranha, porem ao ver o jogo vocês vão intender!
O bacana desse cógigo é que [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.brunomikoski.com/wp-content/uploads/2008/08/exemplo.jpg" rel="lightbox[39]"><img class="alignnone size-medium wp-image-47" title="exemplo" src="http://www.brunomikoski.com/wp-content/uploads/2008/08/exemplo.jpg" alt="" width="181" height="178" /></a><br />
Fala galera!</p>
<p>Vou postar um pequeno jogo que desenvolvi pela <a href="http://www.midiadigital.com.br" target="_blank">Midia Digital</a>, é um joguinho bem antigo! Quem é dos anos 90 lembra dele, consistia basicamente em apertar 2 botões tentando fazer com que as bolinhas ficassem em 2 spots!</p>
<p><span id="more-39"></span></p>
<p>hahah explicação bem estranha, porem ao ver o jogo vocês vão intender!</p>
<p>O bacana desse cógigo é que ele usa algumas técnicas em APE, que pode auxiliar você em varios outros projetos na mesma engine, por exemplo:<br />
- Como adicionar uma força especifica em um unico lugar.<br />
- Interação com força em botões.</p>
<p>Com isso a questão fica muito simples, o projeto se consiste em 2 unicos pontos:<br />
- Criar o Puzzle na APE.<br />
- Fazer as interações.</p>
<p>Ao criar o projeto na APE você tera toda a parte em que a física em si, vai interagir com as bolinhas:</p>
<p><a href="http://www.brunomikoski.com/wp-content/uploads/2008/08/engine.jpg" rel="lightbox[39]"><img class="alignnone size-medium wp-image-40" title="engine" src="http://www.brunomikoski.com/wp-content/uploads/2008/08/engine.jpg" alt="" width="295" height="247" /></a></p>
<pre class="actionscript">acquaplayGroup = <span style="color: #000000; font-weight: bold;">new</span> Group<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
acquaplayGroup.<span style="color: #006600;">collideInternal</span> = <span style="color: #000000; font-weight: bold;">true</span>;
APEngine.<span style="color: #006600;">addGroup</span><span style="color: #66cc66;">&#40;</span>acquaplayGroup<span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">//Creating Balls;</span>
<span style="color: #000000; font-weight: bold;">var</span> ball1Display:DisplayObject = <span style="color: #000000; font-weight: bold;">new</span> bola1<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> ball2Display:DisplayObject = <span style="color: #000000; font-weight: bold;">new</span> bola2<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> ball3Display:DisplayObject = <span style="color: #000000; font-weight: bold;">new</span> bola3<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> ball4Display:DisplayObject = <span style="color: #000000; font-weight: bold;">new</span> bola4<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> ball1:CircleParticle = <span style="color: #000000; font-weight: bold;">new</span> CircleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">70</span>, <span style="color: #cc66cc;">125</span>, <span style="color: #cc66cc;">6</span>, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> ball2:CircleParticle = <span style="color: #000000; font-weight: bold;">new</span> CircleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">87</span>, <span style="color: #cc66cc;">125</span>, <span style="color: #cc66cc;">6</span>, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> ball3:CircleParticle = <span style="color: #000000; font-weight: bold;">new</span> CircleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">105</span>, <span style="color: #cc66cc;">125</span>, <span style="color: #cc66cc;">6</span>, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> ball4:CircleParticle = <span style="color: #000000; font-weight: bold;">new</span> CircleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">121</span>, <span style="color: #cc66cc;">125</span>, <span style="color: #cc66cc;">6</span>, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
ball1.<span style="color: #006600;">sprite</span>.<span style="color: #0066CC;">name</span> = <span style="color: #ff0000;">&quot;ball1&quot;</span>;
ball2.<span style="color: #006600;">sprite</span>.<span style="color: #0066CC;">name</span> = <span style="color: #ff0000;">&quot;ball2&quot;</span>;
ball3.<span style="color: #006600;">sprite</span>.<span style="color: #0066CC;">name</span> = <span style="color: #ff0000;">&quot;ball3&quot;</span>;
ball4.<span style="color: #006600;">sprite</span>.<span style="color: #0066CC;">name</span> = <span style="color: #ff0000;">&quot;ball4&quot;</span>;
&nbsp;
acquaplayGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>ball1<span style="color: #66cc66;">&#41;</span>;
acquaplayGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>ball2<span style="color: #66cc66;">&#41;</span>;
acquaplayGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>ball3<span style="color: #66cc66;">&#41;</span>;
acquaplayGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>ball4<span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">//Creating Wall and obstacles</span>
<span style="color: #000000; font-weight: bold;">var</span> lWall:RectangleParticle = <span style="color: #000000; font-weight: bold;">new</span> RectangleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span>, <span style="color: #cc66cc;">85</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">134</span>, -.<span style="color: #cc66cc;">05</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> rWall:RectangleParticle = <span style="color: #000000; font-weight: bold;">new</span> RectangleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">188</span>, <span style="color: #cc66cc;">85</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">134</span>, .<span style="color: #cc66cc;">05</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> tWall:RectangleParticle = <span style="color: #000000; font-weight: bold;">new</span> RectangleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span>, <span style="color: #cc66cc;">18</span>, <span style="color: #cc66cc;">200</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> bWall:RectangleParticle = <span style="color: #000000; font-weight: bold;">new</span> RectangleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span>, <span style="color: #cc66cc;">153</span>, <span style="color: #cc66cc;">185</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> blColision:RectangleParticle = <span style="color: #000000; font-weight: bold;">new</span> RectangleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60</span>, <span style="color: #cc66cc;">142</span>, <span style="color: #cc66cc;">75</span>, <span style="color: #cc66cc;">0.5</span>, -.<span style="color: #cc66cc;">13</span>, <span style="color: #000000; font-weight: bold;">true</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0.0</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> brColision:RectangleParticle = <span style="color: #000000; font-weight: bold;">new</span> RectangleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">133</span>, <span style="color: #cc66cc;">142</span>, <span style="color: #cc66cc;">75</span>, <span style="color: #cc66cc;">0.5</span>, .<span style="color: #cc66cc;">13</span>, <span style="color: #000000; font-weight: bold;">true</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0.0</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
rWall.<span style="color: #006600;">setLine</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.1</span>, 0x000, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
tWall.<span style="color: #006600;">setLine</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.1</span>, 0x000, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
lWall.<span style="color: #006600;">setLine</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.1</span>, 0x000, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
bWall.<span style="color: #006600;">setLine</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.1</span>, 0x000, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
blColision.<span style="color: #006600;">setLine</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span>, 0x000, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
brColision.<span style="color: #006600;">setLine</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span>, 0x000, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
acquaplayGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>lWall<span style="color: #66cc66;">&#41;</span>;
acquaplayGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>rWall<span style="color: #66cc66;">&#41;</span>;
acquaplayGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>tWall<span style="color: #66cc66;">&#41;</span>;
acquaplayGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>bWall<span style="color: #66cc66;">&#41;</span>;
&nbsp;
acquaplayGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>blColision<span style="color: #66cc66;">&#41;</span>;
acquaplayGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>brColision<span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> ob1left:RectangleParticle = <span style="color: #000000; font-weight: bold;">new</span> RectangleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">63</span>, <span style="color: #cc66cc;">82</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">20</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> ob1right:RectangleParticle = <span style="color: #000000; font-weight: bold;">new</span> RectangleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">80</span>, <span style="color: #cc66cc;">82</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">20</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> ob1Ldown:RectangleParticle = <span style="color: #000000; font-weight: bold;">new</span> RectangleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">68</span>, <span style="color: #cc66cc;">95</span>, <span style="color: #cc66cc;">10</span>, <span style="color: #cc66cc;">1</span>, .<span style="color: #cc66cc;">6</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> ob1Rdown:RectangleParticle = <span style="color: #000000; font-weight: bold;">new</span> RectangleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">75</span>, <span style="color: #cc66cc;">95</span>, <span style="color: #cc66cc;">10</span>, <span style="color: #cc66cc;">1</span>, -.<span style="color: #cc66cc;">6</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> ob2left:RectangleParticle = <span style="color: #000000; font-weight: bold;">new</span> RectangleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span>, <span style="color: #cc66cc;">62</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">20</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> ob2right:RectangleParticle = <span style="color: #000000; font-weight: bold;">new</span> RectangleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">137</span>, <span style="color: #cc66cc;">62</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">20</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> ob2Ldown:RectangleParticle = <span style="color: #000000; font-weight: bold;">new</span> RectangleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">125</span>, <span style="color: #cc66cc;">75</span>, <span style="color: #cc66cc;">10</span>, <span style="color: #cc66cc;">1</span>, .<span style="color: #cc66cc;">6</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> ob2Rdown:RectangleParticle = <span style="color: #000000; font-weight: bold;">new</span> RectangleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">132</span>, <span style="color: #cc66cc;">75</span>, <span style="color: #cc66cc;">10</span>, <span style="color: #cc66cc;">1</span>, -.<span style="color: #cc66cc;">6</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
ob2left.<span style="color: #006600;">setLine</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.1</span>, 0x000, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
ob2right.<span style="color: #006600;">setLine</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.1</span>, 0x000, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
ob2Ldown.<span style="color: #006600;">setLine</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.1</span>, 0x000, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
ob2Rdown.<span style="color: #006600;">setLine</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.1</span>, 0x000, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
ob1left.<span style="color: #006600;">setLine</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.1</span>, 0x000, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
ob1right.<span style="color: #006600;">setLine</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.1</span>, 0x000, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
ob1Ldown.<span style="color: #006600;">setLine</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.1</span>, 0x000, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
ob1Rdown.<span style="color: #006600;">setLine</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.1</span>, 0x000, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
acquaplayGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>ob2left<span style="color: #66cc66;">&#41;</span>;
acquaplayGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>ob2right<span style="color: #66cc66;">&#41;</span>;
acquaplayGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>ob2Ldown<span style="color: #66cc66;">&#41;</span>;
acquaplayGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>ob2Rdown<span style="color: #66cc66;">&#41;</span>;
&nbsp;
acquaplayGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>ob1left<span style="color: #66cc66;">&#41;</span>;
acquaplayGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>ob1right<span style="color: #66cc66;">&#41;</span>;
acquaplayGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>ob1Ldown<span style="color: #66cc66;">&#41;</span>;
acquaplayGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>ob1Rdown<span style="color: #66cc66;">&#41;</span>;</pre>
<p>Com isso nosso puzzle ja esta ok! Agora é Customizar os objetos!</p>
<p>o proximo passo for criar os objetos para serem usados como skin dos meus objetos.</p>
<p>Criei 4 objetos diferentes e exportei como ball1, ball2, ball3 e ball4.</p>
<p><a href="http://www.brunomikoski.com/wp-content/uploads/2008/08/display-bolas.jpg" rel="lightbox[39]"><img class="alignnone size-medium wp-image-43" title="display-bolas" src="http://www.brunomikoski.com/wp-content/uploads/2008/08/display-bolas.jpg" alt="" width="217" height="272" /></a></p>
<p>Agora crio os objetos como display object:</p>
<pre class="actionscript"><span style="color: #000000; font-weight: bold;">var</span> ball1Display:DisplayObject = <span style="color: #000000; font-weight: bold;">new</span> bola1<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> ball2Display:DisplayObject = <span style="color: #000000; font-weight: bold;">new</span> bola2<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> ball3Display:DisplayObject = <span style="color: #000000; font-weight: bold;">new</span> bola3<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> ball4Display:DisplayObject = <span style="color: #000000; font-weight: bold;">new</span> bola4<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">//e adiciono eles com a função setDisplay</span>
&nbsp;
ball1.<span style="color: #006600;">setDisplay</span><span style="color: #66cc66;">&#40;</span>ball1Display, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
ball2.<span style="color: #006600;">setDisplay</span><span style="color: #66cc66;">&#40;</span>ball2Display, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
ball3.<span style="color: #006600;">setDisplay</span><span style="color: #66cc66;">&#40;</span>ball3Display, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
ball4.<span style="color: #006600;">setDisplay</span><span style="color: #66cc66;">&#40;</span>ball4Display, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>a principal sacada, que acho que é bem interessante aqui, e pode ser utilizado em inumeros outros jogos, é justamente a seguinte parte:</p>
<p>no meu enterframe, eu utilizo a seguinte função:</p>
<pre class="actionscript"><span style="color: #b1b100;">for</span> each<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> p:AbstractParticle <span style="color: #b1b100;">in</span> acquaplayGroup.<span style="color: #006600;">particles</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>Ou seja, eu consigo pegar todas as minhas particulas que estão rodadndo na minha APE, e com isso, consigo tratar cada 1 de maneira diferente, então, eu quero pegar apenas as particulas que estão em movimento, verifico se ela é fixa ou não:</p>
<pre class="actionscript"><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>p.<span style="color: #006600;">fixed</span> == <span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>E agora faço as verificações, se a bola, estiver em uma posisão x, com o botão estando apertado, aplique uma força no objeto:</p>
<pre class="actionscript"><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>p.<span style="color: #006600;">px</span> &amp;gt; <span style="color: #cc66cc;">145</span> &amp;amp;&amp;amp; p.<span style="color: #006600;">px</span> &amp;lt; <span style="color: #cc66cc;">185</span> &amp;amp;&amp;amp; p.<span style="color: #006600;">py</span> &amp;lt; <span style="color: #cc66cc;">50</span> &amp;amp;&amp;amp; p.<span style="color: #006600;">py</span> &amp;gt; <span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
	p.<span style="color: #006600;">addForce</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> VectorForce<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">false</span>, -.<span style="color: #cc66cc;">5</span>, <span style="color: #cc66cc;">0.5</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>p.<span style="color: #006600;">px</span> &amp;gt; <span style="color: #cc66cc;">4</span> &amp;amp;&amp;amp; p.<span style="color: #006600;">px</span> &amp;lt; <span style="color: #cc66cc;">62</span> &amp;amp;&amp;amp; p.<span style="color: #006600;">py</span> &amp;lt; <span style="color: #cc66cc;">50</span> &amp;amp;&amp;amp; p.<span style="color: #006600;">py</span> &amp;gt; <span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
	p.<span style="color: #006600;">addForce</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> VectorForce<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">false</span>, .<span style="color: #cc66cc;">5</span>, <span style="color: #cc66cc;">0.5</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>bLeftForce<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>p.<span style="color: #006600;">px</span> &amp;gt; <span style="color: #cc66cc;">15</span> &amp;amp;&amp;amp; p.<span style="color: #006600;">px</span> &amp;lt; <span style="color: #cc66cc;">30</span> &amp;amp;&amp;amp; p.<span style="color: #006600;">py</span> &amp;gt; <span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		p.<span style="color: #006600;">addForce</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> VectorForce<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">-4</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>p.<span style="color: #006600;">px</span> &amp;gt; <span style="color: #cc66cc;">4</span> &amp;amp;&amp;amp; p.<span style="color: #006600;">px</span> &amp;lt; <span style="color: #cc66cc;">62</span> &amp;amp;&amp;amp; p.<span style="color: #006600;">py</span> &amp;lt; <span style="color: #cc66cc;">50</span> &amp;amp;&amp;amp; p.<span style="color: #006600;">py</span> &amp;gt; <span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		p.<span style="color: #006600;">addForce</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> VectorForce<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>bRightForce<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>p.<span style="color: #006600;">px</span> &amp;gt; <span style="color: #cc66cc;">168</span> &amp;amp;&amp;amp; p.<span style="color: #006600;">px</span> &amp;lt; <span style="color: #cc66cc;">180</span> &amp;amp;&amp;amp; p.<span style="color: #006600;">py</span> &amp;gt; <span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		p.<span style="color: #006600;">addForce</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> VectorForce<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">-4</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>p.<span style="color: #006600;">px</span> &amp;gt; <span style="color: #cc66cc;">145</span> &amp;amp;&amp;amp; p.<span style="color: #006600;">px</span> &amp;lt; <span style="color: #cc66cc;">185</span> &amp;amp;&amp;amp; p.<span style="color: #006600;">py</span> &amp;lt; <span style="color: #cc66cc;">50</span> &amp;amp;&amp;amp; p.<span style="color: #006600;">py</span> &amp;gt; <span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		p.<span style="color: #006600;">addForce</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> VectorForce<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">-2</span>, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>Basicamente é isso, aqui em baixo você pode ver como ficou o projeto final:<br />
<script type="text/javascript" src="http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/js/swfobject.js"></script></p><div class="embedflash" id="swfid487189a0770270da051677192b1aa081"><small>(Please open the article to see the flash file or player.)</small></div><p style="padding:0px;margin:0px;"><script type="text/javascript">
				var flashvars = {}; var params = {}; var attributes = {};params.allowfullscreen = "true"; params.allowscriptaccess = "always";
				swfobject.embedSWF("http://www.brunomikoski.com/wp-content/uploads/2008/08/acquaplay_ape.swf","swfid487189a0770270da051677192b1aa081","300","250","9.0.0","http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/swf/expressInstall.swf",flashvars,params,attributes);
		</script></p>
<p><a href="http://www.brunomikoski.com/wp-content/uploads/2008/08/acquaplay-game.zip">Download do código fonte do jogo!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunomikoski.com/2008/08/08/source-acquaplay-jogo-desenvolvido-em-ape-actionscript-3/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.brunomikoski.com/2008/08/08/source-acquaplay-jogo-desenvolvido-em-ape-actionscript-3/</feedburner:origLink></item>
		<item>
		<title>Primeiros passos com 3D no FLASH!</title>
		<link>http://feeds.feedburner.com/~r/BrunoMikoski/~3/341837577/</link>
		<comments>http://www.brunomikoski.com/2008/07/21/primeiros-passos-com-3d-no-flash/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 19:53:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Tutorial]]></category>

		<category><![CDATA[3D]]></category>

		<category><![CDATA[Actionscript 3]]></category>

		<category><![CDATA[Away 3D]]></category>

		<category><![CDATA[engines]]></category>

		<category><![CDATA[Papervision 3D]]></category>

		<guid isPermaLink="false">http://www.brunomikoski.com/?p=27</guid>
		<description><![CDATA[Olá a todos! Bom, finalmente vou fazer um post simples e bem básico com 3D no flash, nesta época de tanta evidencia de Papervision, eu vou na contra mão é vou lançar um tutorial sobre o Away 3D! É a engine 3D de flash que mais tem me impressionado ultimamente, devido a otimização e facilidade [...]]]></description>
			<content:encoded><![CDATA[<p>Olá a todos! Bom, finalmente vou fazer um post simples e bem básico com 3D no flash, nesta época de tanta evidencia de <a href="http://blog.papervision3d.org/">Papervision</a>, eu vou na contra mão é vou lançar um tutorial sobre o <a href="http://away3d.com/">Away 3D</a>! É a engine 3D de flash que mais tem me impressionado ultimamente, devido a otimização e facilidade de uso, infelizmente não posso fazer um bom comparativo entre as 2, porem acredito que ambas tem seus Prós e Contras, porem, resolvi fazer um post sobre a <a href="http://away3d.com/">Away 3D</a> após ver este site:</p>
<div class="wp-caption alignnone" style="width: 481px"><img title="HellBoy 2 Website" src="http://away3d.com/awaygraphics/away3d_hellboy_1.jpg" alt="Away 3D site do Hellboy" width="471" height="400" /><p class="wp-caption-text">Away 3D site do Hellboy</p></div>
<p><span id="more-27"></span><br />
Não porque é em 3D muito bem feito, mais é utilizado de forma sensata, leve, e realmente muito facil de ser reproduzido! Ela ainda tem suporte a WOW Engine (engine de fisica para 3D)!</p>
<p>Existem vários exemplos ótimos de <a href="http://away3d.com/">Away 3D</a>, segue alguns exemplos, retirados do próprio site do <a href="http://away3d.com/">Away 3D</a></p>
<p><a title="Discovery Game" href="http://science.discovery.com/tv/space-week/solar-symphony/solar-symphony.html" target="_blank"><img src="http://away3d.com/awaygraphics/away3d_discovery_game.jpg" alt="Discovery Game" width="471" height="296" /></a></p>
<p><a title="Square Enix" href="http://member.square-enix.com/jp/" target="_blank"><img src="http://away3d.com/awaygraphics/away3d_square_enix.jpg" alt="Square Enix" width="471" height="296" /></a></p>
<p><a title="The Strangers" href="http://thestrangers.net/" target="_blank"></a></p>
<p><a title="The Strangers" href="http://thestrangers.net/" target="_blank"><img src="http://away3d.com/awaygraphics/away3d_the_strangers.jpg" alt="The Strangers" width="471" height="296" /></a></p>
<p><a title="Cadbury" href="http://www.aglassandahalffullproductions.com/" target="_blank"><img src="http://away3d.com/awaygraphics/away3d_cadbury.jpg" alt="Cadbury Glass and a Half Full" width="471" height="296" /></a></p>
<p><a title="Cadbury Game" href="http://www.aglassandahalffullproductions.com/#/trucks/tricked-out-trucks/" target="_blank"><img src="http://away3d.com/awaygraphics/away3d_cadbury_game.jpg" alt="Brahma Mobile" width="471" height="296" /></a></p>
<p><a title="Brahma Mobile" href="http://improvise.ru/swf/Brahmamobile.swf" target="_blank"><img src="http://away3d.com/awaygraphics/away3d_brahma.jpg" alt="Brahma Mobile" width="471" height="296" /></a></p>
<p>Então! Chega de papo furado, e vamos a um exemplo <span style="text-decoration: line-through;">BEM SIMPLES!</span> <strong>Ridiculamente Simples</strong>, de ser feito!</p>
<p><script type="text/javascript" src="http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/js/swfobject.js"></script></p><div class="embedflash" id="swfid939c464aa9fdd96a7e83c3760d82269d"><small>(Please open the article to see the flash file or player.)</small></div><p style="padding:0px;margin:0px;"><script type="text/javascript">
				var flashvars = {}; var params = {}; var attributes = {};params.allowfullscreen = "true"; params.allowscriptaccess = "always";
				swfobject.embedSWF("http://www.brunomikoski.com/wp-content/uploads/2008/07/first.swf","swfid939c464aa9fdd96a7e83c3760d82269d","450","300","9.0.0","http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/swf/expressInstall.swf",flashvars,params,attributes);
		</script></p>
<p>Ok! Sem tirar sarro! é que realmente queria algo bem simples, para mostrar a facilidade do mesmo!</p>
<p>Basicamente para um projeto em Away 3D, você vai precisar fazer o <a href="http://away3d.com/downloads">download da ultima versão</a>, e jogar no seu Classpath, ou simplesmente deixar a mesma na pasta da sua aplicação, estou utilizando <a href="http://www.flashdevelop.org/community/">Flash Develop </a>aqui, aconselho a todos que não gostem muito do editor de Actionscript do Flash, utilizarem o mesmo, é muito bom!</p>
<p>Crie seu Arquivo Flash Actionscript 3, defina o Document Class como Main, no flash Develop crie uma nova Classe como <strong>Main.as</strong>, jogue no mesmo diretório que o seu <strong>.fla</strong>.</p>
<p>O seu arquivo Main.as devera ser como o arquivo abaixo:</p>
<pre class="actionscript">package
<span style="color: #66cc66;">&#123;</span>
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Main
<span style="color: #66cc66;">&#123;</span>
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Main<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>Precisamos apenas extender a nossa classe para a mesma ser um Document Class, então alteramos para:</p>
<pre class="actionscript"> <span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Main <span style="color: #0066CC;">extends</span> Sprite</pre>
<p>Feito isso nossa Document Class esta pronta para ser usada!</p>
<p>Basicamente para trabalher com o Away 3D vc precisa de um unico objeto, o <a href="http://away3d.com/livedocs/away3d/containers/View3D.html">View3D</a>, então vamos criar um novo view 3D, centralizado no Stage:</p>
<pre class="actionscript"><span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> view:View3D = <span style="color: #000000; font-weight: bold;">new</span> View3D<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#123;</span> x:<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageWidth</span>/<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>, y:<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageHeight</span>/<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#125;</span> <span style="color: #66cc66;">&#41;</span>;</pre>
<p>Agora precisamos de um Objeto 3D neste caso utilizei uma porem inicio a mesma como Object3D, pois sphere é uma extensão da classe Objeto 3D:</p>
<pre class="actionscript"><span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> sphere:Object3D;</pre>
<p>E no Construtor da nossa classe vamos iniciar e definir alguns padrões:</p>
<pre class="actionscript"><span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Main<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
<span style="color: #808080; font-style: italic;">//Adicionando nosso view ao stage</span>
addChild<span style="color: #66cc66;">&#40;</span>view<span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//criando um listener para o enterFrame para o mesmo rodar a engine</span>
addEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, run<span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//Criando uma nova Sphere, passo para ela as cores do meu Wireframe, o raio, quantos poligonos verticais e horizontais, posições x,y e z</span>
sphere = <span style="color: #000000; font-weight: bold;">new</span> Sphere<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#123;</span> material:<span style="color: #ff0000;">&quot;white#black&quot;</span>, radius:<span style="color: #cc66cc;">100</span>, segmentsW:<span style="color: #cc66cc;">12</span>, segmentsH:<span style="color: #cc66cc;">9</span>, y:<span style="color: #cc66cc;">0</span>, x:<span style="color: #cc66cc;">0</span>, z:<span style="color: #cc66cc;">10</span> <span style="color: #66cc66;">&#125;</span> <span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//Adiciono a minha esfera ao stage da minha visualização</span>
view.<span style="color: #006600;">scene</span>.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>sphere<span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//Mudo a posição da minha camera</span>
view.<span style="color: #0066CC;">camera</span>.<span style="color: #0066CC;">position</span> = <span style="color: #000000; font-weight: bold;">new</span> Number3D<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1000</span>, <span style="color: #cc66cc;">1000</span>, <span style="color: #cc66cc;">1000</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//Travo a minha camera para a mesma apontar para a sphere</span>
view.<span style="color: #0066CC;">camera</span>.<span style="color: #006600;">lookAt</span><span style="color: #66cc66;">&#40;</span>sphere.<span style="color: #0066CC;">position</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre>
<p>E no enterFrame rodamos nossa engine, e rodamos a esfera!</p>
<pre class="actionscript"><span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> run<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
sphere.<span style="color: #006600;">rotationY</span> += <span style="color: #cc66cc;">1</span>;
view.<span style="color: #006600;">render</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre>
<p>E pronto, uma simples aplicação em 3D escrita com pouquíssimas linhas de código, para ser exato, de código real temos apenas <strong>10 linhas</strong> de código!</p>
<p>Código Completo:</p>
<pre class="actionscript">package
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">import</span> away3d.<span style="color: #006600;">containers</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> away3d.<span style="color: #006600;">core</span>.<span style="color: #006600;">base</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> away3d.<span style="color: #006600;">primitives</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> away3d.<span style="color: #006600;">core</span>.<span style="color: #0066CC;">math</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #0066CC;">Stage</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Main <span style="color: #0066CC;">extends</span> Sprite
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> view:View3D = <span style="color: #000000; font-weight: bold;">new</span> View3D<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#123;</span> x:<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageWidth</span>/<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>, y:<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageHeight</span>/<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#125;</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> sphere:Object3D;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Main<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">//Adicionando nosso view ao stage</span>
			addChild<span style="color: #66cc66;">&#40;</span>view<span style="color: #66cc66;">&#41;</span>;
			<span style="color: #808080; font-style: italic;">//criando um listener para o enterFrame para o mesmo rodar a engine</span>
			addEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, run<span style="color: #66cc66;">&#41;</span>;
			<span style="color: #808080; font-style: italic;">//Criando uma nova Sphere, passo para ela as cores do meu Wireframe, o raio, quantos poligonos verticais e horizontais, posições x,y e z</span>
			sphere = <span style="color: #000000; font-weight: bold;">new</span> Sphere<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#123;</span> material:<span style="color: #ff0000;">&quot;white#black&quot;</span>, radius:<span style="color: #cc66cc;">100</span>, segmentsW:<span style="color: #cc66cc;">12</span>, segmentsH:<span style="color: #cc66cc;">9</span>, y:<span style="color: #cc66cc;">0</span>, x:<span style="color: #cc66cc;">0</span>, z:<span style="color: #cc66cc;">10</span> <span style="color: #66cc66;">&#125;</span> <span style="color: #66cc66;">&#41;</span>;
			<span style="color: #808080; font-style: italic;">//Adiciono a minha esfera ao stage da minha visualização</span>
			view.<span style="color: #006600;">scene</span>.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>sphere<span style="color: #66cc66;">&#41;</span>;
			<span style="color: #808080; font-style: italic;">//Mudo a posição da minha camera</span>
			view.<span style="color: #0066CC;">camera</span>.<span style="color: #0066CC;">position</span> = <span style="color: #000000; font-weight: bold;">new</span> Number3D<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1000</span>, <span style="color: #cc66cc;">1000</span>, <span style="color: #cc66cc;">1000</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #808080; font-style: italic;">//Travo a minha camera para a mesma apontar para a sphere</span>
			view.<span style="color: #0066CC;">camera</span>.<span style="color: #006600;">lookAt</span><span style="color: #66cc66;">&#40;</span>sphere.<span style="color: #0066CC;">position</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> run<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			sphere.<span style="color: #006600;">rotationY</span> += <span style="color: #cc66cc;">1</span>;
			view.<span style="color: #006600;">render</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p><a href="http://www.brunomikoski.com/wp-content/uploads/2008/07/3d.zip"><img class="alignnone" title="Download Files" src="http://www.brunomikoski.com/wp-includes/images/crystal/archive.png" alt="" width="46" height="60" /> Download do arquivo Fonte!</a></p>
<p>É isso ai, até a proxima, prometo trazer algo mais aplicável e interessante!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunomikoski.com/2008/07/21/primeiros-passos-com-3d-no-flash/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.brunomikoski.com/2008/07/21/primeiros-passos-com-3d-no-flash/</feedburner:origLink></item>
		<item>
		<title>Pétalas caindo randomicamente em actionscript 3</title>
		<link>http://feeds.feedburner.com/~r/BrunoMikoski/~3/330997487/</link>
		<comments>http://www.brunomikoski.com/2008/07/09/petalas-caindo-randomicamente-em-actionscript-3/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 18:22:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<category><![CDATA[Tutorial]]></category>

		<category><![CDATA[Actionscript 3]]></category>

		<category><![CDATA[Blur]]></category>

		<guid isPermaLink="false">http://www.brunomikoski.com/?p=20</guid>
		<description><![CDATA[Fala galera, mais um post rapidinho pra variar, vou passar algo bem simples que acabei utilizando em um projeto agora de manha, e gostei do resultado final, então mostrar basicamente como foi feito, e ja da uma noção Actionscript 3, aplicar filtros blur via Actionscript, é bem simples, porem acho que o efeito final ficou [...]]]></description>
			<content:encoded><![CDATA[<p>Fala galera, mais um post rapidinho pra variar, vou passar algo bem simples que acabei utilizando em um projeto agora de manha, e gostei do resultado final, então mostrar basicamente como foi feito, e ja da uma noção Actionscript 3, aplicar filtros <em>blur</em> via Actionscript, é bem simples, porem acho que o efeito final ficou bacana!</p>
<p><script type="text/javascript" src="http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/js/swfobject.js"></script></p><div class="embedflash" id="swfid1614bf0bdeccbbaec10177dd319f0f07"><small>(Please open the article to see the flash file or player.)</small></div><p style="padding:0px;margin:0px;"><script type="text/javascript">
				var flashvars = {}; var params = {}; var attributes = {};params.allowfullscreen = "true"; params.allowscriptaccess = "always";
				swfobject.embedSWF("http://www.brunomikoski.com/wp-content/uploads/2008/07/petalas.swf","swfid1614bf0bdeccbbaec10177dd319f0f07","450","300","9.0.0","http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/swf/expressInstall.swf",flashvars,params,attributes);
		</script></p>
<p><span id="more-20"></span></p>
<p>Em primeiro lugar, vamos preparar o necessário:</p>
<p><strong>Desenhe uma pétala simples, e exporte a mesma como "</strong><em>petala</em><strong>".</strong></p>
<p><img class="alignnone size-full wp-image-21" title="petala-linkada" src="http://www.brunomikoski.com/wp-content/uploads/2008/07/petala-linkada.jpg" alt="" width="350" height="309" /></p>
<p><strong>Agora vamos a parte que importa o código!</strong></p>
<pre class="actionscript">&nbsp;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
<span style="color: #808080; font-style: italic;">//Criando um Timer</span>
<span style="color: #000000; font-weight: bold;">var</span> myTimer:Timer = <span style="color: #000000; font-weight: bold;">new</span> Timer<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span>;
myTimer.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>TimerEvent.<span style="color: #006600;">TIMER</span>, addPetala<span style="color: #66cc66;">&#41;</span>;
myTimer.<span style="color: #0066CC;">start</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">//Função para retornar um numero randomico passando 2 valores como parametro</span>
<span style="color: #000000; font-weight: bold;">function</span> getRandomByRange<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">min</span>:<span style="color: #0066CC;">Number</span>, <span style="color: #0066CC;">max</span>:<span style="color: #0066CC;">Number</span>, <span style="color: #0066CC;">floor</span>:<span style="color: #0066CC;">Boolean</span> = <span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Number</span>
<span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">var</span> randomNum:<span style="color: #0066CC;">Number</span>;
    <span style="color: #b1b100;">switch</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">floor</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#123;</span>
        <span style="color: #b1b100;">case</span> <span style="color: #000000; font-weight: bold;">false</span>:
            randomNum = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> * <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">max</span> - <span style="color: #0066CC;">min</span> + <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #0066CC;">min</span>;
        <span style="color: #b1b100;">break</span>
        <span style="color: #b1b100;">case</span> <span style="color: #000000; font-weight: bold;">true</span>:
            randomNum = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">floor</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> * <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">max</span> - <span style="color: #0066CC;">min</span> + <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #0066CC;">min</span>;
        <span style="color: #b1b100;">break</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">return</span> randomNum;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #808080; font-style: italic;">//Função que adiciona nova petala.</span>
<span style="color: #000000; font-weight: bold;">function</span> addPetala<span style="color: #66cc66;">&#40;</span>te:TimerEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">var</span> myPetala:petala = <span style="color: #000000; font-weight: bold;">new</span> petala<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #000000; font-weight: bold;">var</span> scale:<span style="color: #0066CC;">Number</span> = getRandomByRange<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.3</span>, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    myPetala.<span style="color: #006600;">scaleX</span>                = myPetala.<span style="color: #006600;">scaleY</span> = scale;
    myPetala.<span style="color: #006600;">x</span>                    = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>*<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageWidth</span>;
    myPetala.<span style="color: #006600;">fallingCurve</span>        = getRandomByRange<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">-2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
    myPetala.<span style="color: #006600;">dropSpeed</span>            = <span style="color: #66cc66;">&#40;</span>scale/<span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span>*<span style="color: #cc66cc;">100</span>;
    myPetala.<span style="color: #006600;">rotateSpeed</span>        = getRandomByRange<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">-3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
    myPetala.<span style="color: #006600;">turn</span>                = <span style="color: #cc66cc;">0.1</span>;
&nbsp;
    <span style="color: #000000; font-weight: bold;">var</span> petalaBlur:BlurFilter    = <span style="color: #000000; font-weight: bold;">new</span> BlurFilter<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    petalaBlur.<span style="color: #006600;">blurX</span>            = petalaBlur.<span style="color: #006600;">blurY</span> = <span style="color: #66cc66;">&#40;</span>scale/<span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span>*<span style="color: #cc66cc;">100</span>;
    petalaBlur.<span style="color: #0066CC;">quality</span>            = <span style="color: #cc66cc;">3</span>;
&nbsp;
    <span style="color: #000000; font-weight: bold;">var</span> filterArray:<span style="color: #0066CC;">Array</span>        = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#40;</span>petalaBlur<span style="color: #66cc66;">&#41;</span>;
    myPetala.<span style="color: #006600;">filters</span>            = filterArray;
&nbsp;
    myPetala.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, dropMe<span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>myPetala<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #808080; font-style: italic;">//Função da animação da petala</span>
<span style="color: #000000; font-weight: bold;">function</span> dropMe<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">var</span> petala:<span style="color: #0066CC;">MovieClip</span>     = <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">target</span> as <span style="color: #0066CC;">MovieClip</span>;
    petala.<span style="color: #006600;">x</span>                += petala.<span style="color: #006600;">fallingCurve</span>;
    petala.<span style="color: #006600;">y</span>                += petala.<span style="color: #006600;">dropSpeed</span>;
    petala.<span style="color: #006600;">rotation</span>            += petala.<span style="color: #006600;">rotateSpeed</span>;
    petala.<span style="color: #006600;">scaleX</span>             += petala.<span style="color: #006600;">turn</span>;
&nbsp;
    <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>petala.<span style="color: #006600;">scaleX</span> &amp;gt; <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#123;</span>
        petala.<span style="color: #006600;">turn</span> = <span style="color: #cc66cc;">-0.1</span>;
    <span style="color: #66cc66;">&#125;</span>
    <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>petala.<span style="color: #006600;">scaleX</span> &amp;lt; <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#123;</span>
        petala.<span style="color: #006600;">turn</span> = <span style="color: #cc66cc;">0.1</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>petala.<span style="color: #006600;">y</span> &amp;gt; <span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageHeight</span>+petala.<span style="color: #0066CC;">height</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#123;</span>
        <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">target</span>.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, dropMe<span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">target</span>.<span style="color: #006600;">parent</span>.<span style="color: #006600;">removeChild</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">target</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>Basicamente a grande sacada aqui é que as petalas que caem na frente, caem mais rapido, e tem mais blur aplicado, dando um efeito bacana de desfoque!</p>
<p>É bem simples mais o efeito final e bacana e bem leve!</p>
<p><a href="http://www.brunomikoski.com/wp-content/uploads/2008/07/petalas.fla"> <img class="alignnone size-medium wp-image-24" title="flash-ico" src="http://www.brunomikoski.com/wp-content/uploads/2008/07/flash-ico.png" alt="" width="16" height="16" /> Download dos arquivos</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunomikoski.com/2008/07/09/petalas-caindo-randomicamente-em-actionscript-3/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.brunomikoski.com/2008/07/09/petalas-caindo-randomicamente-em-actionscript-3/</feedburner:origLink></item>
		<item>
		<title>Flash CS4 “Diesel” O que podemos esperar?</title>
		<link>http://feeds.feedburner.com/~r/BrunoMikoski/~3/324281422/</link>
		<comments>http://www.brunomikoski.com/2008/07/01/flash-cs4-diesel-o-que-podemos-esperar/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 19:35:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Info]]></category>

		<category><![CDATA[Adobe]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Pixel Blender]]></category>

		<guid isPermaLink="false">http://www.brunomikoski.com/?p=19</guid>
		<description><![CDATA[Olá a todos!
Semana meio corrida, por isso farei um post um pouco mais informativo! Reuni um pouco de informações sobre tudo que tem rolado na net do novidades e improvements Flash CS4 codi-nome "Diesel" (Adorei esse nome). 


 Overview 
Pelo que anda rolando de rumores, ele será lançado em Outubro de 2008, não vamos mais [...]]]></description>
			<content:encoded><![CDATA[<p>Olá a todos!<br />
Semana meio corrida, por isso farei um post um pouco mais informativo! Reuni um pouco de informações sobre tudo que tem rolado na net do novidades e <a href="http://www.google.com.br/search?q=define%3Aimprovements">improvements </a><strong>Flash CS4</strong> codi-nome "Diesel" <em>(Adorei esse nome). </em></p>
<p><span id="more-19"></span></p>
<dl>
<dt> <strong>Overview</strong> </dt>
<dd>Pelo que anda rolando de rumores, ele será lançado em <strong>Outubro de 2008</strong>, não vamos mais ter <em>Keyframes</em>, agora ele vai utilizar coordenada baseada em tempo, basicamente como temos em todos os programas de animação (After Effects, Primier, 3DS) Acredito que isso fará muito mais sentido para quem esta começando no flash. Nas vias praticas, isso quer dizer que vc vai poder clicar com o botão direito sobre um objeto, e simplesmente adicionar um <em>Shape Tween</em> ou <em>Motion Tween</em> diretamente a este objeto. Isso significa que não vai ter mais <em>Tweens </em>Quebrados, porque eles não estão mais ligados a um <em>Keyframe</em>. Quando você mexer o objeto de lugar no Stage, ele é automaticamente atualizado, sem mudar <em>frames </em>algum. Outra boa coisa, é que você vai poder desenhar uma linha com a <em>Pen Tool</em>, e fazer um <em>Tween </em>seguir o caminho, Antigamente você precisaria criar um <em>Path Layer</em> para ai adicionar uma animação a mesma, isso vai economizar muito tempo :). Outra adição é a <em>Transform Tool</em> que permite modificar ou transformar o <em>Tween path</em></dd>
<dt><span style="color: #000000;"><strong>Novidades</strong></span></dt>
<dd> </dd>
<dt><span style="color: #ff6600;">Typed Arrays (Vetores)</span></dt>
<dd>Isso deveria ter sido implementado no Actionscript 3 em primeiro lugar, finalmente agora foram adicionadas ao CS4.<br />
Typed Arrays, fazem com que <em>debuggar</em> e <em>manutenção</em> das aplicações sejam uma coisa mais simples, dando a você compilação em tempo real, fazendo com que a escrita do código seja mais segura. Com isso tbm, temos a chance de escrever arrays com elementos como <em>Vetores</em>. </dd>
<dt><span style="color: #ff6600;">Suporte a 64-bit</span></dt>
<dd>Rolou alguns boatos que o Flash CS3 teria suporte a 64-Bit, porem não tem. <img src='http://www.brunomikoski.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
Adobe oficialmente anunciou que o Flash CS4 tera suporte a processadores 64- bits. Desta forma podemos utilizar tudo que um processador 64-bit tem a oferecer, especialmente com coisas em 3D! </dd>
<dt><span style="color: #ff6600;">PixelBender utilizando GPU</span></dt>
<dd>Isso sera uma otima adição, Isso vai permitir que você crie filtros e efeitos utilizando a mais nova linguagem de processamento de imagens chamada <a href="http://labs.adobe.com/wiki/index.php/AIF_Toolkit" target="_blank">"PixelBender"</a>. É isso é ainda melhor pelo fato que a <em>PixelBender</em> faz uso direto da GPU (Sua VGA).<br />
Isso permite a criação de filtros e efeitos Real Time, que vão deixar os desenvolvedores malucos, existem varios exemplos "open-source" disponiveis no <a href="http://labs.adobe.com/wiki/index.php/AIF_Toolkit">Adobe Lab</a>.<br />
Pixel Bender é uma linguagem de programação usada para processar algoritimos de imagens, via hardware, algumas das coisas que ele oferece são:</p>
<ul>
<li>Sintaxe parecida com o GLSL, que é baseado em C</li>
<li>Permite que um mesmo filtro rode efetivamente em diferentes GPU e CPU, incluindo sistemas multi-core e multi-processadores não necessariamente sendo da mesma arquitetura.</li>
<li>Facilita a criação de um aplicativo para varios sistemas</li>
<li>Suporte para aplicações de terceiros, criação e compartilhamento de filtros e efeitos</li>
<li>Traz uma qualidade exelente de performace quando trabalhado junto com produtos ADOBE</li>
</ul>
</dd>
<dt><span style="color: #ff6600;">Tweens Inverse Kinematic (BONES!!)</span></dt>
<dd>Adobe finalmente anuciou que o Flash CS4 vai ter suporte nativo a IK tweens.<br />
O Basico do IK é que vc consegue controlar objetos diferentes com um simples bone. E quando você move o objeto, os objetos presos ao mesmo bone, são forçados a se mexer e se adaptar junto com ele. Como você pode imaginar isso facilitara muito o trabalho para animar, personagens. Quem trabalha com 3D ja deve estar acostumados com isso, porem agora temos isso em Flash sem terque escrever uma unica linha de código:<br />
<script type="text/javascript" src="http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/js/swfobject.js"></script></p><div class="embedflash" id="swfid739c6cfa7172d4b734ef6e3f83cb9741"><small>(Please open the article to see the flash file or player.)</small></div><p style="padding:0px;margin:0px;"><script type="text/javascript">
				var flashvars = {}; var params = {}; var attributes = {};params.allowfullscreen = "true"; params.allowscriptaccess = "always";
				swfobject.embedSWF("http://www.youtube.com/v/wDjewbDF4bo","swfid739c6cfa7172d4b734ef6e3f83cb9741","425","355","9.0.0","http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/swf/expressInstall.swf",flashvars,params,attributes);
		</script> </dd>
<dt><span style="color: #ff6600;">Novo modelo de tween (baseado no objeto)</span></dt>
<dd>Basicamente esse novo metodo é para você utilizar tween em objetos sem a necessidade de isto estar a presto em alguma timeline.<br />
Isto é feito basicamente clicando com o botão direto sobre um objeto e clicando em <em>"Add Tween"</em>. Isso facilita muito, até para quem esta começando no flash.<br />
E garante uma nova experiencia ao se tratar de tween, facilitando e agilizando o processo. Esse é o improvement que eu mais expero.<br />
Abaixo um video demonstrando a nova engine de Tween:<br />
<script type="text/javascript" src="http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/js/swfobject.js"></script></p><div class="embedflash" id="swfid4f335cc8f9fc0f3dce3d548c67a29031"><small>(Please open the article to see the flash file or player.)</small></div><p style="padding:0px;margin:0px;"><script type="text/javascript">
				var flashvars = {}; var params = {}; var attributes = {};params.allowfullscreen = "true"; params.allowscriptaccess = "always";
				swfobject.embedSWF("http://www.youtube.com/v/8_wRMswNLiU","swfid4f335cc8f9fc0f3dce3d548c67a29031","425","355","9.0.0","http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/swf/expressInstall.swf",flashvars,params,attributes);
		</script> </dd>
<dt><span style="color: #ff6600;">Conversor para Flash Lite</span></dt>
<dd>Quem desenvolve para flash lite, pode ficar feliz, basicamente as coisas serão melhores com o Flash CS4.<br />
Você não tera mais que ajustar um conteudo para Flash Lite. Porque de alguma maneira agora tudo sera a mesma coisa. </dd>
<dt><span style="color: #ff6600;">Fim do Limite de Bitmap de  2880 x 2880 px</span></dt>
<dd>Os Flash anteriores tinham este limite para prever problemas de memoria. Esse limite foi pras trevas! Ou vai ser bem melhorado! </dd>
<dt><span style="color: #ff6600;">Novo modelo de renderização para o Stage</span></dt>
<dd>Essa é mais uma ótima novidade! Com a nova engine poderemos ver animações, videos e varias outras coisas sem precisar compilar o mesmo! </dd>
<dt><span style="color: #ff6600;">3D</span></dt>
<dd>Agora o Flash CS4 permitira a manipulação de objetos 2D em 3D.<br />
<script type="text/javascript" src="http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/js/swfobject.js"></script></p><div class="embedflash" id="swfid52bf36577d4b59db122eb9e2a29fd71c"><small>(Please open the article to see the flash file or player.)</small></div><p style="padding:0px;margin:0px;"><script type="text/javascript">
				var flashvars = {}; var params = {}; var attributes = {};params.allowfullscreen = "true"; params.allowscriptaccess = "always";
				swfobject.embedSWF("http://www.youtube.com/v/0GAbMRj0IV0","swfid52bf36577d4b59db122eb9e2a29fd71c","425","355","9.0.0","http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/swf/expressInstall.swf",flashvars,params,attributes);
		</script> </dd>
<dd> </dd>
</dl>
<p>Por hoje é só, qualquer novidade a mais posto aqui!</p>
<p>ops! Havia esquecido da fonte! é plagio traduzido <img src='http://www.brunomikoski.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>fonte: http://www.brianwiltshire.net/lab/?p=56</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunomikoski.com/2008/07/01/flash-cs4-diesel-o-que-podemos-esperar/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.brunomikoski.com/2008/07/01/flash-cs4-diesel-o-que-podemos-esperar/</feedburner:origLink></item>
		<item>
		<title>Primeiros passos com o APE - Actionscript Physics Engine</title>
		<link>http://feeds.feedburner.com/~r/BrunoMikoski/~3/320660917/</link>
		<comments>http://www.brunomikoski.com/2008/06/24/primeiros-passos-com-o-ape-actionscript-physics-engine/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 23:52:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Tutorial]]></category>

		<category><![CDATA[APE]]></category>

		<guid isPermaLink="false">http://www.brunomikoski.com/?p=10</guid>
		<description><![CDATA[Vou começar esse tutorial sobre APE explicando o que basicamente é ele  
O APE é um engine feita em C++ e portada para actionscript 3.0 que facilita aplicativos envolvendo fisica no Flash  

Existem muitas outras engines tais para o mesmo propósito tais como:

Box2DFlashAS3
WOW-Engine
foam-as3
Motor Physics
Revive
Flade (Flash Dynamics Engine)
Fisix Engine
glaze

Entre algumas outras que eu devo [...]]]></description>
			<content:encoded><![CDATA[<p>Vou começar esse tutorial sobre <a href="http://www.cove.org/ape/index.htm" target="_blank">APE </a>explicando o que basicamente é ele <img src='http://www.brunomikoski.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>O APE é um engine feita em C++ e portada para actionscript 3.0 que facilita aplicativos envolvendo fisica no Flash <img src='http://www.brunomikoski.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-10"></span></p>
<p>Existem muitas outras engines tais para o mesmo propósito tais como:</p>
<ul>
<li><a href="http://box2dflash.sourceforge.net/" target="_blank">Box2DFlashAS3</a></li>
<li><a href="http://seraf.mediabox.fr/wow-engine/as3-3d-physics-engine-wow-engine/">WOW-Engine</a></li>
<li><a href="http://code.google.com/p/foam-as3/">foam-as3</a></li>
<li><a href="http://lab.polygonal.de/2007/10/02/motor-physics-goes-open-source/">Motor Physics</a></li>
<li><a href="http://blog.andre-michelle.com/2006/revive-2d-physics-engine/" target="_blank">Revive</a></li>
<li><a href="http://www.cove.org/flade/" target="_blank">Flade (Flash Dynamics Engine)</a></li>
<li><a href="http://www.fisixengine.com/" target="_blank">Fisix Engine</a></li>
<li><a href="http://code.google.com/p/glaze/" target="_blank">glaze</a></li>
</ul>
<p>Entre algumas outras que eu devo ter esquecido! haha Porem por esta engine ser conhecida no C, e realmente ser EXTREMAMENTE simples de usar!</p>
<p>Vamos a um pequeno exemplo, bem simples, que ja mostra boa parte do que é necessário:</p>
<p style="text-align: center;"><script type="text/javascript" src="http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/js/swfobject.js"></script></p><div class="embedflash" id="swfid17c5b1de1fd729c557e3751afdddeeb8"><small>(Please open the article to see the flash file or player.)</small></div><p style="padding:0px;margin:0px;"><script type="text/javascript">
				var flashvars = {}; var params = {}; var attributes = {};params.allowfullscreen = "true"; params.allowscriptaccess = "always";
				swfobject.embedSWF("http://www.brunomikoski.com/wp-content/uploads/2008/06/simple-ball2.swf","swfid17c5b1de1fd729c557e3751afdddeeb8","300","300","9.0.0","http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/swf/expressInstall.swf",flashvars,params,attributes);
		</script></p>
<p>Veja o código abaixo</p>
<pre class="actionscript"><span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">quality</span> = <span style="color: #ff0000;">&quot;BEST&quot;</span>;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">cove</span>.<span style="color: #006600;">ape</span>.<span style="color: #006600;">*</span>;
<span style="color: #808080; font-style: italic;">//Iniciando Engine</span>
APEngine.<span style="color: #006600;">init</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span>/<span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span>;
APEngine.<span style="color: #006600;">container</span> = <span style="color: #0066CC;">this</span>;
APEngine.<span style="color: #006600;">addForce</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> VectorForce<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//Criando Grupo</span>
<span style="color: #000000; font-weight: bold;">var</span> apeGroup:Group = <span style="color: #000000; font-weight: bold;">new</span> Group<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
apeGroup.<span style="color: #006600;">collideInternal</span> = <span style="color: #000000; font-weight: bold;">true</span>;
<span style="color: #808080; font-style: italic;">//Adicionando Grupo para Engine</span>
APEngine.<span style="color: #006600;">addGroup</span><span style="color: #66cc66;">&#40;</span>apeGroup<span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//Criando step no enterFrame do Stage, para rodar a API</span>
<span style="color: #000000; font-weight: bold;">function</span> run<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	APEngine.<span style="color: #006600;">step</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	APEngine.<span style="color: #006600;">paint</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
	startMc.<span style="color: #0066CC;">visible</span> = <span style="color: #000000; font-weight: bold;">false</span>;
	addEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, run<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000000; font-weight: bold;">var</span> cParticle:CircleParticle = <span style="color: #000000; font-weight: bold;">new</span> CircleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">175</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span>;
	cParticle.<span style="color: #006600;">setFill</span><span style="color: #66cc66;">&#40;</span>0x444444 * <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> + 0xbbbbbb<span style="color: #66cc66;">&#41;</span>;
	cParticle.<span style="color: #006600;">setLine</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, 0xff0000, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
	apeGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>cParticle<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
startMc.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_DOWN</span>,init<span style="color: #66cc66;">&#41;</span>;</pre>
<p>Basicamente ela funciona assim:</p>
<ol>
<li> Iniciando APE</li>
<li> Criando Objetos</li>
<li> Criando Grupos</li>
<li> Adicionando Objetos ao Grupo</li>
<li> Adicionando Grupo a APE</li>
<li> Rodando a Engine em um ENTER_FRAME;</li>
</ol>
<p><strong>Iniciando ENGINE:</strong></p>
<ul>
<li><strong>APEngine.init</strong> é o metodo que deve ser chamado para iniciar a ENGINE, passando o valor do delta para  ela, este valor é basicamente a força das equações de sua aplicação, quanto menor o numero/mais cálculos serão feitos, e mais preciso será sua física, porem mais lenta, por default é utilizado 1/3 ou 1/4.</li>
</ul>
<ul>
<li><strong>APEngine.addForce</strong> Isso aqui você define um valor padrão para a massa dos objetos que vai ter no seu aplicativo, você seta um valor default, ou seja, não precisa declarar em todos os objetos.</li>
</ul>
<ul>
<li><strong>APEngine.container</strong> é aonde fica o o stage da mesma, você pode controlar fisicas separadas para varios objetos com isso.</li>
</ul>
<p><strong>Criando Objetos</strong></p>
<ul>
<li><strong>var cParticle:CircleParticle = new CircleParticle(Math.random()*350, 0, 5);</strong> Criando um objeto da classe Circulo, em uma posição randomica entre 350~0, na posição y:0, e com raio 5.<br />
<strong>cParticle.setFill(0x444444 * Math.random() + 0xbbbbbb);</strong><br />
Setando um preenchimento randomico.<br />
<strong>cParticle.setLine(1, 0xff0000, 0);</strong><br />
Setando uma linha de 1 pixel.</li>
</ul>
<p><strong>Criando Grupos</strong></p>
<ul>
<li><strong>var apeGroup:Group = new Group();</strong> Criando um grupo<br />
<strong>apeGroup.collideInternal = true;</strong> passando a Colisão entre objetos interna do grupo como verdadeira.</li>
</ul>
<p><strong>Adicionando Objetos aos Grupos</strong></p>
<ul>
<li><strong>apeGroup.addParticle(cParticle);</strong> Simplesmente dizendo que a bola criada a pouco, pertence ao grupo apeGroup</li>
</ul>
<p><strong>Adicionando o grupo a APE</strong></p>
<ul>
<li><strong>APEngine.addGroup(apeGroup);</strong> Adicionando o grupo para a APE</li>
</ul>
<p><strong>Rodando a Engine em um ENTER_FRAME;</strong></p>
<ul>
<li><strong>APEngine.step(); Realiza os cálculos necessários para a fisica<br />
APEngine.paint();</strong> Pinta os obejtos na tela!</li>
</ul>
<p>É uma Engine muito simples e pratica de trabalhar, no exemplo abaixo, vou adicionar um retângulo para colisão do objeto:</p>
<p style="text-align: center;"><script type="text/javascript" src="http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/js/swfobject.js"></script></p><div class="embedflash" id="swfidcf6b07f49dd5cc45fcb0cdb4532f9490"><small>(Please open the article to see the flash file or player.)</small></div><p style="padding:0px;margin:0px;"><script type="text/javascript">
				var flashvars = {}; var params = {}; var attributes = {};params.allowfullscreen = "true"; params.allowscriptaccess = "always";
				swfobject.embedSWF("http://www.brunomikoski.com/wp-content/uploads/2008/06/simple-ball-collision.swf","swfidcf6b07f49dd5cc45fcb0cdb4532f9490","300","300","9.0.0","http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/swf/expressInstall.swf",flashvars,params,attributes);
		</script></p>
<p style="text-align: center;">
<pre class="actionscript"><span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">quality</span> = <span style="color: #ff0000;">&quot;BEST&quot;</span>;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">cove</span>.<span style="color: #006600;">ape</span>.<span style="color: #006600;">*</span>;
<span style="color: #808080; font-style: italic;">//Iniciando Engine</span>
APEngine.<span style="color: #006600;">init</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span>/<span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span>;
APEngine.<span style="color: #006600;">container</span> = <span style="color: #0066CC;">this</span>;
APEngine.<span style="color: #006600;">addForce</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> VectorForce<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//Criando Grupo</span>
<span style="color: #000000; font-weight: bold;">var</span> apeGroup:Group = <span style="color: #000000; font-weight: bold;">new</span> Group<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
apeGroup.<span style="color: #006600;">collideInternal</span> = <span style="color: #000000; font-weight: bold;">true</span>;
<span style="color: #808080; font-style: italic;">//Criando Chão</span>
<span style="color: #000000; font-weight: bold;">var</span> rParticle:RectangleParticle = <span style="color: #000000; font-weight: bold;">new</span> RectangleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">150</span>, <span style="color: #cc66cc;">295</span>, <span style="color: #cc66cc;">300</span>, <span style="color: #cc66cc;">10</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
apeGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>rParticle<span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//Adicionando Grupo para Engine</span>
APEngine.<span style="color: #006600;">addGroup</span><span style="color: #66cc66;">&#40;</span>apeGroup<span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//Criando TIMER para adicionar bolas</span>
<span style="color: #000000; font-weight: bold;">var</span> timer:Timer = <span style="color: #000000; font-weight: bold;">new</span> Timer<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span>;
timer.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>TimerEvent.<span style="color: #006600;">TIMER</span>,addBall<span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">//Criando step no enterFrame do Stage, para rodar a API</span>
<span style="color: #000000; font-weight: bold;">function</span> run<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	APEngine.<span style="color: #006600;">step</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	APEngine.<span style="color: #006600;">paint</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #b1b100;">for</span> each<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> p:AbstractParticle <span style="color: #b1b100;">in</span> apeGroup.<span style="color: #006600;">particles</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>p.<span style="color: #006600;">py</span> &amp;gt; <span style="color: #cc66cc;">300</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			apeGroup.<span style="color: #006600;">removeParticle</span><span style="color: #66cc66;">&#40;</span>p<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
	startMc.<span style="color: #0066CC;">visible</span> = <span style="color: #000000; font-weight: bold;">false</span>;
	<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, run<span style="color: #66cc66;">&#41;</span>;
	timer.<span style="color: #0066CC;">start</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">function</span> addBall<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:TimerEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">var</span> cParticle:CircleParticle = <span style="color: #000000; font-weight: bold;">new</span> CircleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>*<span style="color: #cc66cc;">350</span>, <span style="color: #cc66cc;">-20</span>, <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>*<span style="color: #cc66cc;">10</span><span style="color: #cc66cc;">+5</span><span style="color: #66cc66;">&#41;</span>;
	cParticle.<span style="color: #006600;">setFill</span><span style="color: #66cc66;">&#40;</span>0x444444 * <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> + 0xbbbbbb<span style="color: #66cc66;">&#41;</span>;
	cParticle.<span style="color: #006600;">setLine</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, 0xff0000, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
	apeGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>cParticle<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
startMc.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_DOWN</span>,init<span style="color: #66cc66;">&#41;</span>;
startMc.<span style="color: #006600;">buttonMode</span> = <span style="color: #000000; font-weight: bold;">true</span>;</pre>
<p>No exemplo acima, eu simplesmente adicionei um objeto da classe RectangleParticle, na posição x:150 <em>(tudo na APE é centralizado)</em> y:295, largura: 300, altura: 10</p>
<pre class="actionscript"><span style="color: #000000; font-weight: bold;">var</span> rParticle:RectangleParticle = <span style="color: #000000; font-weight: bold;">new</span> RectangleParticle<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">150</span>, <span style="color: #cc66cc;">295</span>, <span style="color: #cc66cc;">300</span>, <span style="color: #cc66cc;">10</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>E adicionei ela ao meu grupo:</p>
<pre class="actionscript">apeGroup.<span style="color: #006600;">addParticle</span><span style="color: #66cc66;">&#40;</span>rParticle<span style="color: #66cc66;">&#41;</span>;</pre>
<p>Outra coisa interessante nisso, é que eu removo as mesmas, quando elas passam de y&gt;300, ou seja, saem do stage.<br />
No função <strong>run</strong>, eu tenho a seguinte verificação:</p>
<pre class="actionscript"><span style="color: #b1b100;">for</span> each<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> p:AbstractParticle <span style="color: #b1b100;">in</span> apeGroup.<span style="color: #006600;">particles</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>p.<span style="color: #006600;">py</span> &amp;gt; <span style="color: #cc66cc;">300</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		apeGroup.<span style="color: #006600;">removeParticle</span><span style="color: #66cc66;">&#40;</span>p<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>Ou seja, toda particula que eu tiver dentro do meu grupo, que exceder a posição y ou seja: py em 300 eu removo ela!</p>
<p><strong>Matéria Primitivas</strong></p>
<p>Na APE, temos basicamente 3 tipos de matérias primitivas, são elas:</p>
<ul>
<li>Rectangle</li>
<li>Circle</li>
<li>Whell</li>
</ul>
<p>E temos uma matéria somente para ligação das mesmas:</p>
<ul>
<li>Spring Constrain</li>
</ul>
<p>Aqui em baixo tem um exemplo bem tosco :S dos tipos de objetos:<br />
<script type="text/javascript" src="http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/js/swfobject.js"></script></p><div class="embedflash" id="swfid75b1e42e5a7a0d70c84dfbd4b649dbb8"><small>(Please open the article to see the flash file or player.)</small></div><p style="padding:0px;margin:0px;"><script type="text/javascript">
				var flashvars = {}; var params = {}; var attributes = {};params.allowfullscreen = "true"; params.allowscriptaccess = "always";
				swfobject.embedSWF("http://www.brunomikoski.com/wp-content/uploads/2008/06/particles-types.swf","swfid75b1e42e5a7a0d70c84dfbd4b649dbb8","300","300","9.0.0","http://www.brunomikoski.com/wp-content/plugins/pb-embedflash/swf/expressInstall.swf",flashvars,params,attributes);
		</script></p>
<p><a href="http://www.brunomikoski.com/wp-content/uploads/2008/06/primeiros-passos-ape.zip"> Baixe aqui todos os experimentos</a></p>
<p>Por enquanto é isso! Assim que possivel, postarei um aplicativo que estou trabalhando, melhor feito com essa engine!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunomikoski.com/2008/06/24/primeiros-passos-com-o-ape-actionscript-physics-engine/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.brunomikoski.com/2008/06/24/primeiros-passos-com-o-ape-actionscript-physics-engine/</feedburner:origLink></item>
		<item>
		<title>Criatividade + Papervision = Spectra</title>
		<link>http://feeds.feedburner.com/~r/BrunoMikoski/~3/318900498/</link>
		<comments>http://www.brunomikoski.com/2008/06/23/criatividade-papervision-spectra/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 13:47:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<category><![CDATA[Papervision 3D]]></category>

		<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://www.brunomikoski.com/?p=11</guid>
		<description><![CDATA[Bom galera, vi isso no blog do Igor Costa, realmente é muito interessante ver quando a criatividade junto a inovação traz projetos desse nivel!
É um agregador de Feeds Visual! Não quero comentar a questão usabilidade ou coisas do genero, mais que realmente merece atenção merece!
Vale o Click!

]]></description>
			<content:encoded><![CDATA[<p>Bom galera, vi isso no blog do <a href="http://www.igorcosta.com/blog/?p=635" target="_blank">Igor Costa</a>, realmente é muito interessante ver quando a criatividade junto a inovação traz projetos desse nivel!</p>
<p>É um agregador de Feeds Visual! Não quero comentar a questão usabilidade ou coisas do genero, mais que realmente merece atenção merece!</p>
<p><a href="http://msnbcmedia.msn.com/i//msnbc/Components/spectra/index.html">Vale o Click!</a></p>
<p><a href="http://msnbcmedia.msn.com/i//msnbc/Components/spectra/index.html" target="_blank"><img class="alignnone size-medium wp-image-12" title="spectra" src="http://www.brunomikoski.com/wp-content/uploads/2008/06/spectra-201x300.jpg" alt="Spectra web visual feeds agregator" width="201" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunomikoski.com/2008/06/23/criatividade-papervision-spectra/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.brunomikoski.com/2008/06/23/criatividade-papervision-spectra/</feedburner:origLink></item>
		<item>
		<title>Utilizando SVN para acompanhar projetos do Google Code</title>
		<link>http://feeds.feedburner.com/~r/BrunoMikoski/~3/318900499/</link>
		<comments>http://www.brunomikoski.com/2008/06/20/utilizando-snv-para-acompanhar-projetos-do-google-code/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 18:07:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Tutorial]]></category>

		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://www.brunomikoski.com/?p=9</guid>
		<description><![CDATA[Olá a todos!
Sei que meu primeiro post deveria ser uma breve apresentação do blog e conteúdo, porem ja tentei fazer um blog varias vezes, e dessa vez vou pular a introdução e vou direto a mão na massa!!!
Ultimamente tenho feito algumas experiências com o APE - Actionscript Physics Engine, e gostaria de começar meu blog [...]]]></description>
			<content:encoded><![CDATA[<p>Olá a todos!</p>
<p>Sei que meu primeiro post deveria ser uma breve apresentação do blog e conteúdo, porem ja tentei fazer um blog varias vezes, e dessa vez vou pular a introdução e vou direto a mão na massa!!!<br />
Ultimamente tenho feito algumas experiências com o <a href="http://www.cove.org/ape/">APE - Actionscript Physics Engine</a>, e gostaria de começar meu blog com um post sobre ele, porem.... acho que seria bacana começar um pouco atras com isso! Hoje em dias vemos e utilizamos tantas Engines Open Source, tais como: <a href="http://blog.papervision3d.org/">Papervision 3D</a>, <a href="http://www.cove.org/ape/">APE</a> entre muitas outras existes hoje em dia, que nos facilitam muito a vida!</p>
<p><span id="more-9"></span></p>
<p>Aonde eu quero chegar com isso tudo é em: Como acompanhar um projeto opensource que passa por varias atualizações, correções, improvements  mensais sem perder nada?</p>
<p>SVN é a resposta, svn que segundo o google é isso:</p>
<p><em><strong>Subversion</strong> (também conhecido por <strong>svn</strong> ou <strong>SVN</strong>, o nome da sua ferramenta de <a class="mw-redirect" title="Linha de comando" href="http://pt.wikipedia.org/wiki/Linha_de_comando">linha de comando</a>) é um <a title="Sistema de controle de versão" href="http://pt.wikipedia.org/wiki/Sistema_de_controle_de_vers%C3%A3o">sistema de controle de versão</a> desenhado especificamente para ser um substituto moderno do <a title="CVS" href="http://pt.wikipedia.org/wiki/CVS">CVS</a>, que se considera ter alguns defeitos.</em></p>
<p>Ou seja:<br />
É um sistema para controle de arquivos "<em>versionados</em>", você mantem um projeto em um servidor, aonde varias pessoas contribuem com o mesmo e mantem backup, versões e revisões de tudo, e ainda um controle geral de tudo que foi alterado! Isso é ótimo até mesmo para gerenciar projetos mesmo!</p>
<p><strong>Software</strong>:<br />
Com o servidor svn você pode ter um software para controlar isso, eu particularmente gosto muito do <a title="TortoiseSVN" href="http://pt.wikipedia.org/wiki/TortoiseSVN">TortoiseSVN</a>, pelas facilidades que ele traz.</p>
<p>Para fazer o download do Tortoise, acesse o link a baixo:<br />
<a href="http://tortoisesvn.net/downloads" target="_blank">http://tortoisesvn.net/downloads</a></p>
<p>Baixe o installer correto (32Bit ou 64Bit), e instale.</p>
<p>Apos a instalação você, podera repara que apareceu algumas opções a mais no seu clique direito:<br />
<a rel="lightbox[svn]" href="http://www.brunomikoski.com/wp-content/uploads/2008/06/tortoisesnv-menu.jpg" rel="lightbox[9]"><img class="alignnone size-medium wp-image-4" title="Tortoirse SVN Menu" src="http://www.brunomikoski.com/wp-content/uploads/2008/06/tortoisesnv-menu-300x133.jpg" alt="Tortoirse SVN Menu do botão direito" width="300" height="133" /></a></p>
<p>Agora que você ja tem SVN vamos acessar ao repositório do Papervision 3D no Google Code!</p>
<p><a href="http://code.google.com/p/papervision3d/" target="_blank"><strong>http://code.google.com/p/papervision3d/</strong></a></p>
<p>Ao clicar em source vc devera ver a seguinte tela:<br />
<a rel="lightbox[svn]" href="http://www.brunomikoski.com/wp-content/uploads/2008/06/papervision3d-no-google-code.jpg" rel="lightbox[9]"><img class="alignnone size-medium wp-image-5" title="papervision3d-no-google-code" src="http://www.brunomikoski.com/wp-content/uploads/2008/06/papervision3d-no-google-code-300x126.jpg" alt="Source do Papervision 3D no Google Code" width="300" height="126" /></a></p>
<p>Tudo que precisamos é do endereço do repositório agora:<br />
<em><tt><strong><em>http</em></strong>://papervision3d.googlecode.com/svn/trunk/</tt></em></p>
<p>E realizar o CheckOut do mesmo:<br />
<a rel="lightbox[svn]" href="http://www.brunomikoski.com/wp-content/uploads/2008/06/checkout-do-ppv3d.jpg" rel="lightbox[9]"><img class="alignnone size-medium wp-image-6" title="checkout-do-ppv3d" src="http://www.brunomikoski.com/wp-content/uploads/2008/06/checkout-do-ppv3d-300x132.jpg" alt="Realizando o Checkout do papervision 3D" width="300" height="132" /></a></p>
<p>Agora ao final do processo, você devera ver a pasta que você selecionou assim:<br />
<a rel="lightbox[svn]" href="http://www.brunomikoski.com/wp-content/uploads/2008/06/papervision-checkoutado.jpg" rel="lightbox[9]"><img class="alignnone size-medium wp-image-7" title="papervision-checkoutado" src="http://www.brunomikoski.com/wp-content/uploads/2008/06/papervision-checkoutado.jpg" alt="Papervision 3D Tortoise SVN" width="101" height="29" /></a></p>
<p>Isso significa que a mesma esta com a versão mais recente do Projeto!!!</p>
<p><a rel="lightbox[svn]" href="http://www.brunomikoski.com/wp-content/uploads/2008/06/papervision3d-checkout-alteradoi.jpg" rel="lightbox[9]"><img class="alignnone size-medium wp-image-8" title="papervision3d-checkout-alteradoi" src="http://www.brunomikoski.com/wp-content/uploads/2008/06/papervision3d-checkout-alteradoi.jpg" alt="Pasta do papaervision 3D tortoise SVN alterado" width="95" height="30" /></a></p>
<p>Isto significa que ela não esta com a versão mais recente, e/ou teve alguma alteração, que deve ser <em>Comitada</em> ou <em>Updateada</em> <img src='http://www.brunomikoski.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Bom galera! Para inciar é isso! Assim que possivel, postarei meus primeiros experimentos com a maravilhosa APE!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunomikoski.com/2008/06/20/utilizando-snv-para-acompanhar-projetos-do-google-code/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.brunomikoski.com/2008/06/20/utilizando-snv-para-acompanhar-projetos-do-google-code/</feedburner:origLink></item>
	</channel>
</rss>
