<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog Fellyph Cintra &#187; POO</title>
	<atom:link href="http://www.fellyph.com.br/blog/category/poo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fellyph.com.br/blog</link>
	<description></description>
	<lastBuildDate>Thu, 12 Jan 2012 21:34:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Top 5 dos livros de Flash</title>
		<link>http://www.fellyph.com.br/blog/flash/top-5-dos-livros-para-flash/</link>
		<comments>http://www.fellyph.com.br/blog/flash/top-5-dos-livros-para-flash/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 23:37:25 +0000</pubDate>
		<dc:creator>Fellyph</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[POO]]></category>

		<guid isPermaLink="false">http://www.fellyph.com.br/blog/?p=754</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.fellyph.com.br/blog/flash/top-5-dos-livros-para-flash/' addthis:title='Top 5 dos livros de Flash '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>Semana passada pedi ajuda ao meus amigos "flasheiros" para escrever esse post pedi indicações de livros sobre Flash, imediatamente tive a resposta da galera, só eu que demorei para postar mais aqui vai a dica dos TOP 5 : <a href="http://www.fellyph.com.br/blog/flash/top-5-dos-livros-para-flash/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.fellyph.com.br/blog/flash/top-5-dos-livros-para-flash/' addthis:title='Top 5 dos livros de Flash '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div><p><img class="alignnone size-full wp-image-761" title="livros" src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/09/livros.jpg" alt="livros" width="450" height="360" /></p>
<p>Semana passada pedi ajuda ao meus amigos &#8220;flasheiros&#8221; para escrever esse post pedi indicações de livros sobre Flash, imediatamente tive a resposta da galera, só eu que demorei para postar mais aqui vai a dica dos TOP 5 :</p>
<p><img class="alignnone size-full wp-image-759" title="andre" src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/09/andre.jpg" alt="andre" width="90" height="90" /><br />
<strong>André Fontenelle</strong><br />
<strong>Twitter :</strong> <a href="http://www.twitter.com/alfont" target="_blank">@alfont</a></p>
<p><a href="http://www.twitter.com/alfont" target="_blank"></a><img class="alignnone size-full wp-image-762" title="as3_cookbook" src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/09/as3_cookbook.jpg" alt="as3_cookbook" width="225" height="300" /><br />
<strong>ActionScript 3.0 CookBook </strong> -<em> É um livro muito didático, especialmente indicado para quem está no nível intermediário de ActionScript. Ele aborda muitos assuntos, servindo até como uma bíblia de ActionScript.</em></p>
<p><img src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/09/separa.gif" alt="separa" title="separa" width="450" height="15" class="alignnone size-full wp-image-773" /></p>
<p><img class="alignnone size-full wp-image-756" title="ponce" src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/09/ponce.jpg" alt="ponce" width="90" height="90" /></p>
<p><strong>André Ponce</strong><br />
<strong> Site Pessoal:</strong> <a href="http://andreponce.com" target="_blank">andreponce.com</a><br />
<strong> Twitter: </strong><a href="http://www.twitter.com/andreponce" target="_blank">@andreponce</a></p>
<p><img class="alignnone size-full wp-image-765" title="animation" src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/09/animation.jpg" alt="animation" width="225" height="300" /></p>
<p><strong>Foundation Actionscript 3.0 Animation: Making Things Move</strong> -  <em>Livro muito bom pra quem quer desenvolver tecnicas de animacão dinâmica combinando simples recursos do actionscript a eficientes fórmulas matemáticas. Certamente vai lhe ajudar a economizar tempo quando você se deparar com a necessidade em desenvolver logicas e algoritimos mais elaborados.</em></p>
<p><img src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/09/separa.gif" alt="separa" title="separa" width="450" height="15" class="alignnone size-full wp-image-773" /></p>
<p><img class="alignnone size-full wp-image-758" title="breno" src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/09/breno.jpg" alt="breno" width="90" height="90" /></p>
<p><strong>Breno Claizoni</strong><br />
<strong>Site Pessoal:</strong> <a href="http://brenoclaizoni.com/blog/" target="_blank">brenoclaizoni.com/blog</a><br />
<strong> Twitter: </strong><a href="http://www.twitter.com/brenoocs" target="_blank">@brenoocs</a></p>
<p><img class="alignnone size-full wp-image-767" title="essential_as3" src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/09/essential_as3.jpg" alt="essential_as3" width="225" height="300" /></p>
<p><strong>Essential ActionScript 3, O&#8217;Reilly</strong> &#8211; <em>Fundamental pra quem quer migrar ou quer começar a programar em ActionScript, mostra desde o básico até os mais avançados exemplos em AS3, como a linguagem funciona, etc. Como o próprio nome do Livro diz, é Essencial! <img src='http://www.fellyph.com.br/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em></p>
<p><img src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/09/separa.gif" alt="separa" title="separa" width="450" height="15" class="alignnone size-full wp-image-773" /></p>
<p><img class="alignnone size-full wp-image-757" title="neto" src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/09/neto.jpg" alt="neto" width="90" height="90" /></p>
<p><strong>Neto Leal</strong><br />
<strong>Site Pessoal:</strong> netoleal.com.br<br />
<strong>Twitter:</strong> @netoleal</p>
<p><img class="alignnone size-full wp-image-766" title="actionscript3-dpoo" src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/09/actionscript3-dpoo.jpg" alt="actionscript3-dpoo" width="225" height="300" /><br />
<strong>Advanced ActionScript 3 with Design Patterns &#8211; by Joey Lott and Danny Patterson</strong> &#8211; <em>Aplica em ActionScript 3 conceitos avançados e conhecidos dos principais design patterns. Uma grande lição de organização de grandes projetos, reutilização e otimização de código além de ser uma grande fonte de absorção de experiência já que seus autores são pessoas absolutamente competentes nos conceitos demonstrados. Leitura obrigatória para qualquer profissional que deseja se desenvolver em programação orientada a objetos.</em></p>
<p><img src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/09/separa.gif" alt="separa" title="separa" width="450" height="15" class="alignnone size-full wp-image-773" /></p>
<p><img class="alignnone size-full wp-image-755" title="ricardo_crop" src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/09/ricardo_crop.jpg" alt="ricardo_crop" width="90" height="90" /></p>
<p><strong>Ricardo Teixeira</strong><br />
<strong> Twitter : </strong><a href="http://www.twitter.com/ricardoteix" target="_blank">@ricardoteix</a><br />
<strong>ActionScript 3.0 Cookbook, O&#8217;Reilly (DE NOVO)</strong> - <em>Principalmente para quem quer iniciar em AS3 ou amplicar os conceitos. Apresenta de forma bem clara e com linguagem simples como funciona a estrutura da linguagem, a DisplayList etc. Seria um pré-requisito para a dica do Neto Leal (Advanced ActionScript 3 with Design Patterns).</em></p>
<p><img src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/09/separa.gif" alt="separa" title="separa" width="450" height="15" class="alignnone size-full wp-image-773" /></p>
<p><img class="alignnone size-full wp-image-769" title="eu_2" src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/09/eu_2.jpg" alt="eu_2" width="90" height="90" /><br />
<strong>Fellyph Cintra(Eu)<br />
<span style="font-weight: normal;">Twitter:  <a href="http://www.twitter.com/fellyph/" target="_blank">@fellyph</a></span></strong></p>
<p><img class="alignnone size-full wp-image-770" title="actionscript-3-game-program" src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/09/actionscript-3-game-program1.jpg" alt="actionscript-3-game-program" width="225" height="300" /></p>
<p><strong>ActionScript 3.0 Game Programming University &#8211; </strong>Um livro número um para quem quer entrar no mundo dos games, noções de trigonometria e física ele tem uma evolução no assunto muito legal.</p>
<p>Então galera esse é o meu top 5, claro que existem outros livros muito bons, mas notem que todos os livros indicados são em inglês, na minha a opinião a ideia está crua de acordo com escritor e na maioria das vezes os gringos trantam dos lançamentos primeiro, o livro quando passa por tradução tem que ter um cuidado muito grande para não distorcer a idéia inicial, isso onde alguns livros traduzidos pecam.</p>
<p>Agradeço a galera que participou no post. valeu mesmo galera !!! </p>
<p>E ae galera qual é o seu TOP 5?</p>
<p>Deixe seu comentário&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fellyph.com.br/blog/flash/top-5-dos-livros-para-flash/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>PaperVision Materials &#8211; Parte 2</title>
		<link>http://www.fellyph.com.br/blog/flash/papervision-materials-parte-2/</link>
		<comments>http://www.fellyph.com.br/blog/flash/papervision-materials-parte-2/#comments</comments>
		<pubDate>Tue, 19 May 2009 04:14:29 +0000</pubDate>
		<dc:creator>Fellyph</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[POO]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[cube]]></category>
		<category><![CDATA[materiallist]]></category>
		<category><![CDATA[materials]]></category>
		<category><![CDATA[MovieMaterial]]></category>
		<category><![CDATA[papervision]]></category>
		<category><![CDATA[plane]]></category>

		<guid isPermaLink="false">http://www.fellyph.com.br/blog/?p=571</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.fellyph.com.br/blog/flash/papervision-materials-parte-2/' addthis:title='PaperVision Materials &#8211; Parte 2 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>No Post anterior começamos a falar sobre materiais em papervision, paramos em materiais que trabalham com bitmap, neste post iremos continuar a abordagem sobre o assunto começando por materiais que utilizam MovieClip.  Grande vantagem de se trabalhar com a textura em movieclip, é que podemos aproveitar toda a interatividade do do movieClip, animação e transparência podem ser aplicados na textura. Existem dois tipos de materiais que trabalham com movieclip o MovieAssetMaterial e o MovieMaterial. <a href="http://www.fellyph.com.br/blog/flash/papervision-materials-parte-2/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.fellyph.com.br/blog/flash/papervision-materials-parte-2/' addthis:title='PaperVision Materials &#8211; Parte 2 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div><p>No Post anterior começamos a falar sobre materiais em papervision, paramos em materiais que trabalham com bitmap, neste post iremos continuar a abordagem sobre o assunto começando por materiais que utilizam <strong>MovieClip</strong>.<strong> </strong>Grande vantagem de se trabalhar com a textura em movieclip, é que podemos aproveitar toda a interatividade do do movieClip, animação e transparência podem ser aplicados na textura. Existem dois tipos de materiais que trabalham com movieclip o MovieAssetMaterial e o MovieMaterial.</p>
<p><strong>MovieAssetMaterial</strong><br />
Carrega o movieClip através do linkageID do movieClip na biblioteca esse recurso é utilizado com o Flash CS3 ou superior, por já ter mostrado no post anterior sobre materiais como incluir o linkageID então não vou repetir o passo-a-passo, <a href="http://www.fellyph.com.br/blog/flash/papervision-3d-materials/" target="_blank">link para o post anterior</a>. As principais propriedades que o MovieAssetMaterial trabalha são :</p>
<ul>
<li>linkageID:String, o nome no linkage do movieclip</li>
<li>transparent:Boolean, define se o material vai ter transparência ou não (true ou false)</li>
<li>animated:Boolean,  define se o material vai ser animado (true ou false)</li>
</ul>
<p>Então vamos ao código :</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
</pre></td><td class="code"><pre class="actionscript" style="font-family:monospace;">package  <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	* ...
	* @author Fellyph Cintra
	*/</span>
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #0066CC;">MovieClip</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> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">materials</span>.<span style="color: #006600;">MovieAssetMaterial</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">view</span>.<span style="color: #006600;">Viewport3D</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">render</span>.<span style="color: #006600;">BasicRenderEngine</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">scenes</span>.<span style="color: #006600;">Scene3D</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">cameras</span>.<span style="color: #006600;">Camera3D</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">objects</span>.<span style="color: #006600;">primitives</span>.<span style="color: #006600;">Plane</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;">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> MainMateriaisMovieAsset <span style="color: #0066CC;">extends</span> Sprite<span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _viewport 		:Viewport3D;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _cena 			:Scene3D;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _camera 		:Camera3D;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _renderizador 	:BasicRenderEngine;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> plano			:Plane;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> plano2			:Plane;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> material  		:MovieAssetMaterial;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> MainMateriaisMovieAsset<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">//criamos nosso Viewport3D</span>
			_viewport = <span style="color: #000000; font-weight: bold;">new</span> Viewport3D<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">450</span> , <span style="color: #cc66cc;">300</span> , <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span>_viewport<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			_cena = <span style="color: #000000; font-weight: bold;">new</span> Scene3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_camera = <span style="color: #000000; font-weight: bold;">new</span> Camera3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_renderizador = <span style="color: #000000; font-weight: bold;">new</span> BasicRenderEngine<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// com o movie material trabalhamos com as seguintes propriedades</span>
			<span style="color: #808080; font-style: italic;">//(linkageId, transparência um valor Booleano , se a textura vai ser animada um valor também Booleano)</span>
			material = <span style="color: #000000; font-weight: bold;">new</span> MovieAssetMaterial<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;face&quot;</span>,<span style="color: #000000; font-weight: bold;">true</span>,<span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//nesse exemplo eu vou trabalhar com dois planos</span>
			<span style="color: #808080; font-style: italic;">// para dar a impressão de um plano com dupla face</span>
			plano = <span style="color: #000000; font-weight: bold;">new</span> Plane<span style="color: #66cc66;">&#40;</span>material, <span style="color: #cc66cc;">300</span>,<span style="color: #cc66cc;">300</span>, <span style="color: #cc66cc;">8</span>, <span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;
			plano2 = <span style="color: #000000; font-weight: bold;">new</span> Plane<span style="color: #66cc66;">&#40;</span>material, <span style="color: #cc66cc;">300</span>, <span style="color: #cc66cc;">300</span>, <span style="color: #cc66cc;">8</span>, <span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//no segundo plano um rotação de 180 para fica no sentido oposta ao primeiro plano</span>
			plano2.<span style="color: #006600;">rotationY</span> -= <span style="color: #cc66cc;">180</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//adicionamos nossos 2 planos na Scene3D _cena</span>
			_cena.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>plano<span style="color: #66cc66;">&#41;</span>;
			_cena.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>plano2<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//aplicamos um onEnterFrame para rotacionar os objetos</span>
			addEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, onRender<span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> onRender<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>
			plano.<span style="color: #006600;">rotationY</span> += <span style="color: #cc66cc;">3</span>;
			plano2.<span style="color: #006600;">rotationY</span> += <span style="color: #cc66cc;">3</span>;
			_renderizador.<span style="color: #006600;">renderScene</span><span style="color: #66cc66;">&#40;</span>_cena, _camera, _viewport<span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Como podemos ver para burlar a falta de planos de dupla face nessa versão do papervision criamos dois planos em sentidos contrários. então temos o seguinte resultado :</p>
<p><object type="application/x-shockwave-flash" data="http://www.fellyph.com.br/blog/wp-content/uploads/2009/05/movieasset.swf" width="450" height="300" class="embedflash"><param name="movie" value="http://www.fellyph.com.br/blog/wp-content/uploads/2009/05/movieasset.swf" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><small>(Please open the article to see the flash file or player.)</small></object></p>
<p><strong>MovieMaterial</strong></p>
<p>Este tipo de material trabalha com Objetos do tipo DisplayObject criados em tempo de execução, ou seja podemos trabalhar com MovieClips e Sprites, é bem parecido com o material anterior , mas o objeto primitivo que vamos trabalhar dessa vez é o cubo(Cube), vamos ao código :</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
</pre></td><td class="code"><pre class="actionscript" style="font-family:monospace;">package  <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	* ...
	* @author Fellyph Cintra
	*/</span>
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #0066CC;">MovieClip</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> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">materials</span>.<span style="color: #006600;">ColorMaterial</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">materials</span>.<span style="color: #006600;">MovieMaterial</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">materials</span>.<span style="color: #006600;">utils</span>.<span style="color: #006600;">MaterialsList</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">view</span>.<span style="color: #006600;">Viewport3D</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">render</span>.<span style="color: #006600;">BasicRenderEngine</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">scenes</span>.<span style="color: #006600;">Scene3D</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">cameras</span>.<span style="color: #006600;">Camera3D</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">objects</span>.<span style="color: #006600;">primitives</span>.<span style="color: #006600;">Cube</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> Formas;
	<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> MainMateriaisMovie <span style="color: #0066CC;">extends</span> Sprite<span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _viewport 		:Viewport3D;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _cena 			:Scene3D;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _camera 		:Camera3D;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _renderizador 	:BasicRenderEngine;
&nbsp;
		<span style="color: #808080; font-style: italic;">//Nesse Exemplo vou trabalhar com um objeto cubo</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> cubo			:Cube;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> material  		:MovieMaterial;
&nbsp;
		<span style="color: #808080; font-style: italic;">// Para trabalhar com o MovieMaterial eu vou criar</span>
		<span style="color: #808080; font-style: italic;">//uma classe que extends de Sprite que eu criei em um tutorial anterior</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> movieForma		:Formas;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> materialList 	:MaterialsList;
&nbsp;
		<span style="color: #808080; font-style: italic;">// Criamos mais dois materiais para diversificar mais os materiais</span>
		<span style="color: #808080; font-style: italic;">//na montagem do cubo</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> corAmarela		:ColorMaterial;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> corAzul			:ColorMaterial;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> MainMateriaisMovie<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">//Criamos nosso Viewport3D</span>
			_viewport = <span style="color: #000000; font-weight: bold;">new</span> Viewport3D<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">450</span> , <span style="color: #cc66cc;">300</span> , <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span>_viewport<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			_cena = <span style="color: #000000; font-weight: bold;">new</span> Scene3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_camera = <span style="color: #000000; font-weight: bold;">new</span> Camera3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_renderizador = <span style="color: #000000; font-weight: bold;">new</span> BasicRenderEngine<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// Estou inicializando meu objeto movieForma</span>
			movieForma = <span style="color: #000000; font-weight: bold;">new</span> Formas<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// Com o movie material trabalhamos com as seguintes propriedades</span>
			<span style="color: #808080; font-style: italic;">//(o nosso movie que é um displayObject ou seja pode ser um movieclip, Sprite ou shape,</span>
			<span style="color: #808080; font-style: italic;">//transparência um valor Booleano , se a textura vai ser animada um valor também Booleano)</span>
			material = <span style="color: #000000; font-weight: bold;">new</span> MovieMaterial<span style="color: #66cc66;">&#40;</span>movieForma,<span style="color: #000000; font-weight: bold;">false</span>,<span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span>;
			corAzul = <span style="color: #000000; font-weight: bold;">new</span> ColorMaterial<span style="color: #66cc66;">&#40;</span>0x00027F<span style="color: #66cc66;">&#41;</span>;
			corAmarela = <span style="color: #000000; font-weight: bold;">new</span> ColorMaterial<span style="color: #66cc66;">&#40;</span>0xFCFF00<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// criamos um materialList para montar nosso cubo</span>
			materialList = <span style="color: #000000; font-weight: bold;">new</span> MaterialsList<span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#123;</span> front:material,back:material,<span style="color: #0066CC;">left</span>:corAmarela,<span style="color: #0066CC;">right</span>:corAmarela,top:corAzul,bottom:corAzul <span style="color: #66cc66;">&#125;</span> <span style="color: #66cc66;">&#41;</span>
&nbsp;
			cubo = <span style="color: #000000; font-weight: bold;">new</span> Cube<span style="color: #66cc66;">&#40;</span>materialList,<span style="color: #cc66cc;">330</span>,<span style="color: #cc66cc;">50</span>,<span style="color: #cc66cc;">240</span>, <span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//adicionamos nosso cubo na Scene3D _cena</span>
			_cena.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>cubo<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			addEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, onRender<span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> onRender<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>
			cubo.<span style="color: #006600;">rotationY</span> += <span style="color: #cc66cc;">1</span>;
			cubo.<span style="color: #006600;">rotationZ</span> += <span style="color: #cc66cc;">1</span>;
			_renderizador.<span style="color: #006600;">renderScene</span><span style="color: #66cc66;">&#40;</span>_cena, _camera, _viewport<span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Nesse exemplo trabalhamos com a classe Formas que extends de Sprite, essa classe foi criada em um tutorial anterior <a href="http://www.fellyph.com.br/blog/flash/trabalhando-com-shape-em-actionscript-30/" target="_blank">link para o tutorial</a>, ela possui o seguinte código :</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
</pre></td><td class="code"><pre class="actionscript" style="font-family:monospace;">package <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Shape</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	* ...
	* @author Fellyph Cintra
	*/</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Formas <span style="color: #0066CC;">extends</span> Sprite <span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> bola		:Shape;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> rect 	:Shape;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> rect2 	:Shape;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Formas<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
			criaRect<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			criaLosango<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			criaBola<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> criaRect<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			rect = <span style="color: #000000; font-weight: bold;">new</span> Shape<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			rect.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0x008300<span style="color: #66cc66;">&#41;</span>;
			rect.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">lineStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span>, 0x008300<span style="color: #66cc66;">&#41;</span>;
			rect.<span style="color: #006600;">graphics</span>.<span style="color: #006600;">drawRect</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">330</span>,<span style="color: #cc66cc;">240</span><span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span>rect<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> criaLosango<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
			rect2 = <span style="color: #000000; font-weight: bold;">new</span> Shape<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			rect2.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xFCFF00<span style="color: #66cc66;">&#41;</span>;
			rect2.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">lineStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span>, 0xFCFF00<span style="color: #66cc66;">&#41;</span>;
			rect2.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">moveTo</span><span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">165</span>, <span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span>;
			rect2.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">310</span>, <span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span>;
			rect2.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">165</span>, <span style="color: #cc66cc;">230</span><span style="color: #66cc66;">&#41;</span>;
			rect2.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">20</span>, <span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span>;
			rect2.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">165</span>, <span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span>;
			rect2.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span>rect2<span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> criaBola<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
			bola = <span style="color: #000000; font-weight: bold;">new</span> Shape<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			bola.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0x00027F<span style="color: #66cc66;">&#41;</span>;
			bola.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">lineStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span>, 0x00027F<span style="color: #66cc66;">&#41;</span>;
			bola.<span style="color: #006600;">graphics</span>.<span style="color: #006600;">drawCircle</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">165</span>, <span style="color: #cc66cc;">120</span>, <span style="color: #cc66cc;">70</span><span style="color: #66cc66;">&#41;</span>;
			bola.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span>bola<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>O resultado que temos é o seguinte :</p>
<p><object type="application/x-shockwave-flash" data="http://www.fellyph.com.br/blog/wp-content/uploads/2009/05/exemplo_movie.swf" width="450" height="300" class="embedflash"><param name="movie" value="http://www.fellyph.com.br/blog/wp-content/uploads/2009/05/exemplo_movie.swf" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><small>(Please open the article to see the flash file or player.)</small></object></p>
<p>Anteriormente tinha previsto o post sobre materiais dividido em dois, mas será necessário um terceiro post sobre o assunto, então pessoal até o próximo post sobre materiais.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fellyph.com.br/blog/flash/papervision-materials-parte-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Papervision 3D &#8211; materials &#8211; Parte 1</title>
		<link>http://www.fellyph.com.br/blog/flash/papervision-3d-materials/</link>
		<comments>http://www.fellyph.com.br/blog/flash/papervision-3d-materials/#comments</comments>
		<pubDate>Thu, 07 May 2009 04:39:56 +0000</pubDate>
		<dc:creator>Fellyph</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[POO]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[bitmapAssetMaterial]]></category>
		<category><![CDATA[bitmapmaterial]]></category>
		<category><![CDATA[material]]></category>
		<category><![CDATA[papervision]]></category>
		<category><![CDATA[wireframe]]></category>

		<guid isPermaLink="false">http://www.fellyph.com.br/blog/?p=544</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.fellyph.com.br/blog/flash/papervision-3d-materials/' addthis:title='Papervision 3D &#8211; materials &#8211; Parte 1 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>Olá pessoal nesse post vamos falar sobre materiais em papervision ( texturas ), parece simples mas o papervision têm uma gama de materiais muito boa, basicamente são divididos em materiais simples cores , bitmap, movieclip e vídeos. A classe mais básicas onde todos extendem é a classe MaterialObject3D ela contém os métodos mais básicos da família dos materiais. Nos post anteriores sobre papervision começamos com wireframeMaterial, é o tipo mais simples formados por linhas entre os segmentos. <a href="http://www.fellyph.com.br/blog/flash/papervision-3d-materials/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.fellyph.com.br/blog/flash/papervision-3d-materials/' addthis:title='Papervision 3D &#8211; materials &#8211; Parte 1 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div><p>Olá pessoal nesse post vamos falar sobre materiais em <strong>papervision</strong> ( texturas ), parece simples mas o papervision têm uma gama de materiais muito boa, basicamente são divididos em materiais simples , bitmap, movieclip e vídeos. A classe mais básicas onde todos estendem é a classe MaterialObject3D ela contém os métodos mais básicos da família dos materiais. Nos posts anteriores sobre papervision começamos com wireframeMaterial, é o tipo mais simples formados por linhas entre os segmentos. Para trabalhar com  <strong>wireframeMaterial</strong> utilizamos as seguintes propriedades:</p>
<ul>
<li>lineColor <span> </span>: cor da linha RGB</li>
<li>lineAlpha <span> </span>: alpha da linha de 0..1</li>
<li>lineThickness<span> </span>: espessura da linha</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package  <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	* ...
	* @author Fellyph Cintra
        * www.fellyph.com/blog/
	*/</span>
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">view</span>.<span style="color: #006600;">Viewport3D</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">render</span>.<span style="color: #006600;">BasicRenderEngine</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">scenes</span>.<span style="color: #006600;">Scene3D</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">cameras</span>.<span style="color: #006600;">Camera3D</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">objects</span>.<span style="color: #006600;">primitives</span>.<span style="color: #006600;">Sphere</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">materials</span>.<span style="color: #006600;">WireframeMaterial</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MainMateriaisWire <span style="color: #0066CC;">extends</span> Sprite<span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _viewport 		:Viewport3D;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _cena 		:Scene3D;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _camera 		:Camera3D;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _renderizador 	:BasicRenderEngine;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> esfera			:Sphere;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> material  		:WireframeMaterial;
&nbsp;
 		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> MainMateriaisWire<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">//criamos nosso Viewport3D</span>
			_viewport = <span style="color: #000000; font-weight: bold;">new</span> Viewport3D<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">450</span> , <span style="color: #cc66cc;">300</span> , <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span>_viewport<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			_cena = <span style="color: #000000; font-weight: bold;">new</span> Scene3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_camera = <span style="color: #000000; font-weight: bold;">new</span> Camera3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_renderizador = <span style="color: #000000; font-weight: bold;">new</span> BasicRenderEngine<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// criamos um novo material e passamos como parâmetro(cor , alpha , espessura da linha)</span>
			material = <span style="color: #000000; font-weight: bold;">new</span> WireframeMaterial<span style="color: #66cc66;">&#40;</span>0x004400, <span style="color: #cc66cc;">0.8</span>, <span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			esfera = <span style="color: #000000; font-weight: bold;">new</span> Sphere<span style="color: #66cc66;">&#40;</span>material, <span style="color: #cc66cc;">80</span>, <span style="color: #cc66cc;">8</span>, <span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//adicionamos nossa esfera na Scene3D _cena</span>
			_cena.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>esfera<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// por fim renderizamos a _cena junto com a _camera e o _viewport</span>
			_renderizador.<span style="color: #006600;">renderScene</span><span style="color: #66cc66;">&#40;</span>_cena, _camera, _viewport<span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Não comentei as primeiras linhas por que esse assunto já foi tratado em posts anteriores, se ainda não viu aqui está o link :</p>
<h3><a title="Tutorial PaperVision 3D 2.0" href="../flash/tutorial-papervision-3d-20/">Tutorial PaperVision 3D 2.0</a></h3>
<h3><a title="Papervison 3D - Objects Primitive" href="../flash/papervison-3d-objects-primitive/">Papervison 3D &#8211; Objects Primitive</a></h3>
<p>Com código acima temos o seguinte resultado:</p>
<p><object type="application/x-shockwave-flash" data="http://www.fellyph.com.br/blog/wp-content/uploads/2009/05/exemplo_wireframe.swf" width="450" height="300" class="embedflash"><param name="movie" value="http://www.fellyph.com.br/blog/wp-content/uploads/2009/05/exemplo_wireframe.swf" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><small>(Please open the article to see the flash file or player.)</small></object></p>
<p><strong>ColorMaterial</strong></p>
<p>Diferente do wireFrame material ele cobre toda a área do objeto.</p>
<p>Suas propriedades são :</p>
<ul>
<li>fillColor : cor do preenchimento em RGB</li>
<li>fillAlpha : alpha do preenchimento 0..1</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package  <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<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> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">core</span>.<span style="color: #0066CC;">math</span>.<span style="color: #006600;">Sphere3D</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	* ...
	* @author Fellyph Cintra
	*/</span>
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">view</span>.<span style="color: #006600;">Viewport3D</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">render</span>.<span style="color: #006600;">BasicRenderEngine</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">scenes</span>.<span style="color: #006600;">Scene3D</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">cameras</span>.<span style="color: #006600;">Camera3D</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">objects</span>.<span style="color: #006600;">primitives</span>.<span style="color: #006600;">Sphere</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">materials</span>.<span style="color: #006600;">ColorMaterial</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MainMateriaisColor <span style="color: #0066CC;">extends</span> Sprite<span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _viewport 		:Viewport3D;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _cena 		:Scene3D;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _camera 		:Camera3D;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _renderizador 	:BasicRenderEngine;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> esfera			:Sphere;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> material  		:ColorMaterial;
&nbsp;
 		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> MainMateriaisColor<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">//criamos nosso Viewport3D</span>
			_viewport = <span style="color: #000000; font-weight: bold;">new</span> Viewport3D<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">450</span> , <span style="color: #cc66cc;">300</span> , <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span>_viewport<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			_cena = <span style="color: #000000; font-weight: bold;">new</span> Scene3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_camera = <span style="color: #000000; font-weight: bold;">new</span> Camera3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_renderizador = <span style="color: #000000; font-weight: bold;">new</span> BasicRenderEngine<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// criamos um novo material e passamos como parâmetro(cor , alpha )</span>
			material = <span style="color: #000000; font-weight: bold;">new</span> ColorMaterial<span style="color: #66cc66;">&#40;</span>0x004400, <span style="color: #cc66cc;">0.8</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			esfera = <span style="color: #000000; font-weight: bold;">new</span> Sphere<span style="color: #66cc66;">&#40;</span>material, <span style="color: #cc66cc;">80</span>, <span style="color: #cc66cc;">8</span>, <span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//adicionamos nossa esfera na Scene3D _cena</span>
			_cena.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>esfera<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// por fim renderizamos a _cena junto com a _camera e o _viewport</span>
			_renderizador.<span style="color: #006600;">renderScene</span><span style="color: #66cc66;">&#40;</span>_cena, _camera, _viewport<span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p><strong>Bitmaps</strong></p>
<p>Os materiais que trabalham com bitmaps têm suas variações, podemos utilizar as seguintes opções, uma imagem da biblioteca, criar um bitmap em tempo de execução, carregar um arquivo externo ou simplesmente wireframes ou Colors(preenchimentos).</p>
<p><strong>BitmapColorMaterial</strong></p>
<p>Tem praticamente a mesma função que ColorMaterial a diferença é que não estamos trabalhando com vetores e sim bitmaps, para não repetir o mesmo código vou comentar apenas as linhas que sofrem modificações, em relação aos exemplos anteriores &#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//no momento de importar a classe devemos importar a classe BitmapColorMaterial</span>
<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">materials</span>.<span style="color: #006600;">BitmapColorMaterial</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">//definimos uma variável do tipo BitmapColorMaterial</span>
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> materialcolor 	:BitmapColorMaterial;
&nbsp;
<span style="color: #808080; font-style: italic;">//inicializamos nossa variável a atribuindo um ColorMaterial na cor 0x004400 e alpha 0.8</span>
materialcolor   = <span style="color: #000000; font-weight: bold;">new</span> ColorMaterial<span style="color: #66cc66;">&#40;</span>0x004400, <span style="color: #cc66cc;">0.8</span>, <span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">//adicionamos nosso materialcolor a esfera</span>
esfera           = <span style="color: #000000; font-weight: bold;">new</span> Sphere<span style="color: #66cc66;">&#40;</span>materialcolor, <span style="color: #cc66cc;">80</span>, <span style="color: #cc66cc;">8</span>, <span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p><strong>BitmapWireframeMaterial</strong></p>
<p>Mesmo esquema do WireframeMaterial com a diferença de temos acesso a o bitmapData desse matérial:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//no momento de importar a classe devemos importar a classe BitmapColorMaterial</span>
<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">materials</span>.<span style="color: #006600;">BitmapWireframeMaterial</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">//definimos uma variável do tipo BitmapColorMaterial</span>
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> materialwire 	:BitmapWireframeMaterial;
&nbsp;
<span style="color: #808080; font-style: italic;">//inicializamos nossa variável a atribuindo um ColorMaterial na cor 0x004400,</span>
<span style="color: #808080; font-style: italic;">//alpha 0.8, espessura da linha 5px</span>
&nbsp;
materialwire   = <span style="color: #000000; font-weight: bold;">new</span> BitmapWireframeMaterial<span style="color: #66cc66;">&#40;</span>0x004400, <span style="color: #cc66cc;">0.8</span>, <span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">//adicionamos nosso materialwire a esfera</span>
esfera           = <span style="color: #000000; font-weight: bold;">new</span> Sphere<span style="color: #66cc66;">&#40;</span>materialwire, <span style="color: #cc66cc;">150</span>, <span style="color: #cc66cc;">8</span>, <span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p><strong>BitmapAssetMaterial</strong></p>
<p>Nesse material podemos carrega-lo da nossa biblioteca, mas para isso é preciso linkageID em nossa imagem. Esse tipo de material é trabalhado apenas no Flash CS3 ou versão superior. Para obter o linkageID devemos importar uma imagem no flash e atribuir um id nas propriedades da imagem, da seguinte forma :</p>
<p>Para esse exemplo eu vou utilizar essa imagem:</p>
<p><img class="alignnone size-medium wp-image-548" title="mapa_mundi" src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/05/mapa_mundi-300x192.gif" alt="mapa_mundi" width="300" height="192" /></p>
<p>primeiro importamos para biblioteca a imagem, em seguida vamos editar as propriedades da imagem, na biblioteca selecione a imagem e vá em &#8220;Properties&#8230;&#8221; um &#8220;i&#8221; que fica localizado no canto inferior da aba da library. como podemos ver na image a baixo:</p>
<p><img class="alignnone size-full wp-image-560" title="tuto_paper_mat_1" src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/05/tuto_paper_mat_1.jpg" alt="tuto_paper_mat_1" width="430" height="512" /></p>
<p>habilite a opção advanced, adicione em Linkage um no para a Classe que vai representar a imagem da biblioteca, esse será o nome utilizado no código para fazer referência a imagem no código.</p>
<p><img class="alignnone size-full wp-image-561" title="tuto_paper_mat_2" src="http://www.fellyph.com.br/blog/wp-content/uploads/2009/05/tuto_paper_mat_2.jpg" alt="tuto_paper_mat_2" width="450" height="286" /></p>
<p>Agora tudo pronto para programação. Na mesma pasta que se encontra o nosso arquivo &#8220;.fla&#8221; vamos criar o arquivo &#8220;.as&#8221;  MainMateriaisBitmap.as, ele segue a mesma lógica dos códigos anteriores :</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package  <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	* ...
	* @author Fellyph Cintra
	*/</span>
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">view</span>.<span style="color: #006600;">Viewport3D</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">render</span>.<span style="color: #006600;">BasicRenderEngine</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">scenes</span>.<span style="color: #006600;">Scene3D</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">cameras</span>.<span style="color: #006600;">Camera3D</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">objects</span>.<span style="color: #006600;">primitives</span>.<span style="color: #006600;">Sphere</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">materials</span>.<span style="color: #006600;">BitmapAssetMaterial</span>;
&nbsp;
	<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> MainMateriaisBitmap <span style="color: #0066CC;">extends</span> Sprite<span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _viewport 		:Viewport3D;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _cena 			:Scene3D;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _camera 		:Camera3D;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _renderizador 	:BasicRenderEngine;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> esfera			:Sphere;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> material  		:BitmapAssetMaterial;
&nbsp;
 		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> MainMateriaisBitmap<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">//criamos nosso Viewport3D</span>
			_viewport = <span style="color: #000000; font-weight: bold;">new</span> Viewport3D<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">450</span> , <span style="color: #cc66cc;">300</span> , <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span>_viewport<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			_cena = <span style="color: #000000; font-weight: bold;">new</span> Scene3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_camera = <span style="color: #000000; font-weight: bold;">new</span> Camera3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_renderizador = <span style="color: #000000; font-weight: bold;">new</span> BasicRenderEngine<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// criamos um novo material do tipo BitmapAssetMaterial</span>
			<span style="color: #808080; font-style: italic;">//passamos como parâmetro(o id da imagem como String)</span>
			material = <span style="color: #000000; font-weight: bold;">new</span> BitmapAssetMaterial<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Img&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			esfera = <span style="color: #000000; font-weight: bold;">new</span> Sphere<span style="color: #66cc66;">&#40;</span>material, <span style="color: #cc66cc;">150</span>, <span style="color: #cc66cc;">8</span>, <span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//adicionamos nossa esfera na Scene3D _cena</span>
			_cena.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>esfera<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// adicionamos um evento ENTER_FRAME para fazer a rotação da nossa esfera</span>
			addEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, onRender<span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> onRender<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: #808080; font-style: italic;">// fazemos o incremento da propriedade rotationY</span>
                        esfera.<span style="color: #006600;">rotationY</span> += <span style="color: #cc66cc;">3</span>;
                        <span style="color: #808080; font-style: italic;">// por fim renderizamos a _cena junto com a _camera e o _viewport</span>
			_renderizador.<span style="color: #006600;">renderScene</span><span style="color: #66cc66;">&#40;</span>_cena, _camera, _viewport<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></pre></div></div>

<p>O resultado que temos é o seguinte :</p>
<p><object type="application/x-shockwave-flash" data="http://www.fellyph.com.br/blog/wp-content/uploads/2009/05/bitmapasset.swf" width="450" height="300" class="embedflash"><param name="movie" value="http://www.fellyph.com.br/blog/wp-content/uploads/2009/05/bitmapasset.swf" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><small>(Please open the article to see the flash file or player.)</small></object></p>
<p><strong>Bitmap File</strong></p>
<p>Material que recebe um bitmap, apontado pelo endereço da imagem através de uma string, por exemplo &#8220;http://www.meusite.com/minhaimagem.jpg&#8221;. Esse material também podemos adicionar um evento a essa imagem. Nesse Exemplo eu volto a trabalhar somente com o Flash Develop, vamos ao código :</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package  <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">/**
	* ...
	* @author Fellyph Cintra
	*/</span>
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">view</span>.<span style="color: #006600;">Viewport3D</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">render</span>.<span style="color: #006600;">BasicRenderEngine</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">scenes</span>.<span style="color: #006600;">Scene3D</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">cameras</span>.<span style="color: #006600;">Camera3D</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">//nesse exemplo vamos mudar um, pouco vamos trabalhar com um plano</span>
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">objects</span>.<span style="color: #006600;">primitives</span>.<span style="color: #006600;">Plane</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">papervision3d</span>.<span style="color: #006600;">materials</span>.<span style="color: #006600;">BitmapFileMaterial</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;">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> MainMateriaisBitmapFile <span style="color: #0066CC;">extends</span> Sprite<span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _viewport 		:Viewport3D;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _cena 		:Scene3D;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _camera 		:Camera3D;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _renderizador 	:BasicRenderEngine;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> plano			:Plane;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> material  		:BitmapFileMaterial;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> MainMateriaisBitmapFile<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">//criamos nosso Viewport3D</span>
			_viewport = <span style="color: #000000; font-weight: bold;">new</span> Viewport3D<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">450</span> , <span style="color: #cc66cc;">300</span> , <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span>_viewport<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			_cena = <span style="color: #000000; font-weight: bold;">new</span> Scene3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_camera = <span style="color: #000000; font-weight: bold;">new</span> Camera3D<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			_renderizador = <span style="color: #000000; font-weight: bold;">new</span> BasicRenderEngine<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #808080; font-style: italic;">//nesse exemplo no mesmo local do meu arquivo .swf eu tenho um arquivo agua.jpg</span>
                        <span style="color: #808080; font-style: italic;">//então passo como parâmetro o endereço da minha imagem</span>
			material = <span style="color: #000000; font-weight: bold;">new</span> BitmapFileMaterial<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;agua.jpg&quot;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #808080; font-style: italic;">//criamos um plano com 300px de altura e 300px de largura</span>
                        <span style="color: #808080; font-style: italic;">//e 8 segmentos verticais e horizontais</span>
			plano = <span style="color: #000000; font-weight: bold;">new</span> Plane<span style="color: #66cc66;">&#40;</span>material, <span style="color: #cc66cc;">300</span>,<span style="color: #cc66cc;">300</span>, <span style="color: #cc66cc;">8</span>, <span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//adicionamos nosso plano na Scene3D _cena</span>
			_cena.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>plano<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			addEventListener<span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, onRender<span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> onRender<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>
			plano.<span style="color: #006600;">rotationY</span> -= <span style="color: #cc66cc;">3</span>;
			_renderizador.<span style="color: #006600;">renderScene</span><span style="color: #66cc66;">&#40;</span>_cena, _camera, _viewport<span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p><object type="application/x-shockwave-flash" data="http://www.fellyph.com.br/blog/wp-content/uploads/2009/05/exemplo_bit_correto.swf" width="450" height="300" class="embedflash"><param name="movie" value="http://www.fellyph.com.br/blog/wp-content/uploads/2009/05/exemplo_bit_correto.swf" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><small>(Please open the article to see the flash file or player.)</small></object></p>
<p>Para não ficar muito extenso esse post vou dividi-lo em dois.<br />
Então até o próximo post, pessoal.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fellyph.com.br/blog/flash/papervision-3d-materials/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Trabalhando com o Teclado em ActionScript 3.0</title>
		<link>http://www.fellyph.com.br/blog/geral/trabalhando-com-o-teclado-em-actionscript-30/</link>
		<comments>http://www.fellyph.com.br/blog/geral/trabalhando-com-o-teclado-em-actionscript-30/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 04:08:26 +0000</pubDate>
		<dc:creator>Fellyph</dc:creator>
				<category><![CDATA[Esportes]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Geral]]></category>
		<category><![CDATA[POO]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[KeyBoardEvent]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.fellyph.com.br/blog/?p=89</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.fellyph.com.br/blog/geral/trabalhando-com-o-teclado-em-actionscript-30/' addthis:title='Trabalhando com o Teclado em ActionScript 3.0 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>Olá pessoal mais um post sobre actionScript 3.0, agora vamos trabalhar com o teclado. Em AS3 houve mudanças no tratamento dos eventos com o teclado,mas ficou no padrão no tratamento de eventos. Para disparar funções quando o teclado for pressionado fazemos da seguinte forma: <a href="http://www.fellyph.com.br/blog/geral/trabalhando-com-o-teclado-em-actionscript-30/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://www.fellyph.com.br/blog/geral/trabalhando-com-o-teclado-em-actionscript-30/' addthis:title='Trabalhando com o Teclado em ActionScript 3.0 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div><p>Olá pessoal mais um post sobre actionScript 3.0, agora vamos trabalhar com o teclado. Em AS3 houve mudanças no tratamento dos eventos com o teclado,mas ficou no padrão no tratamento de eventos. Para disparar funções quando o teclado for pressionado fazemos da seguinte forma:</p>
<pre lang="ActionScript" line=1>stage.addEventListener(KeyboardEvent.KEY_DOWN, fazAlgoa);

function fazAlgo(e:KeyBoardEvent):void{

 //faz qualquer coisa

 }</pre>
<p>Na linha 01 adicionamos o evento KeyboardEvent no stage, e passamos como parâmetro que função será chamada no nosso caso &#8216;fazAlgo&#8217;, Na linha 02 temos a assinatura da função &#8216;fazAlgo&#8217; que recebe a variável &#8216;e&#8217; do tipo KeyboardEvent. Até agora simples, vamos trabalhar melhor essas funções com o exemplo a seguir:</p>
<ul>
<li>Crie um novo arquivo flash</li>
</ul>
<ul>
<li>Determine a sua taxa de framerate para 30 fps</li>
</ul>
<p><img class="alignnone size-full wp-image-100" title="tutorial_3_tela2" src="http://www.fellyph.com.br/blog/wp-content/uploads/2008/09/tutorial_3_tela2.jpg" alt="" width="450" height="224" /></p>
<ul>
<li>Crie um movieclip com o nome de instância bola_mc</li>
</ul>
<p><img class="alignnone size-full wp-image-101" title="tutorial_3_tela21" src="http://www.fellyph.com.br/blog/wp-content/uploads/2008/09/tutorial_3_tela21.jpg" alt="" width="450" height="224" /></p>
<ul>
<li>Crie uma layer com nome ações</li>
</ul>
<p><img class="alignnone size-full wp-image-102" title="tutorial_3_tela3" src="http://www.fellyph.com.br/blog/wp-content/uploads/2008/09/tutorial_3_tela3.jpg" alt="" width="450" height="224" /></p>
<ul>
<li>Seleciona a layer ações pressione f9 para inserir o código.</li>
</ul>
<pre lang="ActionScript"  line=1>var vx        :Number = 0;
var vy        :Number = 0;
var ax        :Number = 0;
var ay        :Number = 0;

stage.addEventListener(Event.ENTER_FRAME, onEnter);
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeydown);
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyup);

function onEnter(e:Event):void{
      vx += ax;
      vy += ay;
      bola_mc.x += vx;
      bola_mc.y += vy;
}

  function onKeydown(e:KeyboardEvent):void{

      if(e.keyCode == Keyboard.LEFT){
          ax = - 0.1;
      }else if(e.keyCode == Keyboard.RIGHT)
      {
          ax = 0.1;
      }else if(e.keyCode == Keyboard.UP){
          ay = -0.1
      }else if(e.keyCode == Keyboard.DOWN){
          ay = 0.1;
      }
}

function onKeyup(e:KeyboardEvent):void{
      ax = 0;
      ay = 0;
}</pre>
<p>Nas linhas 1, 2, 3 e 4 foram criadas variavéis to tipo Number para a velocidade e aceleração do eixo x e y. Na linha 5 foi adicionado o evento ENTER_FRAME e na 6 e 7 os eventos KEY_DOWN e KEY_UP. A função onEnter incrementa a velocidade dos eixos com a aceleração. A função onKeyDown na linha 14 é disparado quando o usuário pressiona qualquer tecla e através da variável &#8216;e&#8217; do tipo KeyboardEvent podemos saber qual tecla foi pressionada com o código e.KeyCode que na realidade é o número equivalente a tabela ASCI mas como nem todo mundo tem tempo de sobra para ficar decorando toda a tabela ASCI, a classe keyboard possui variáveis estáticas para facilitar a vida do programador, onde podemos ver nas linhas 15, 17, 20 e 22.</p>
<p>Assim a lógica fica da seguinte forma quando a tecla esquerda for pressionada a aceleração x é decrementada, quando pressionado a direita incrementada, quando a tecla cima(up) for pressionada a aceleração y é decrementada e baixo(down) o oposto. A função onKeyup é disparada no Evento KeyboarEvent.KEY_UP ou seja quando o usuário solta a tecla será chamada a função que zera a aceleração tanto x e y. Vamos ver o resultado :</p>
<p><object type="application/x-shockwave-flash" data="http://www.fellyph.com.br/blog/wp-content/uploads/2008/09/bola_teclado.swf" width="450" height="400" class="embedflash"><param name="movie" value="http://www.fellyph.com.br/blog/wp-content/uploads/2008/09/bola_teclado.swf" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><small>(Please open the article to see the flash file or player.)</small></object></p>
<h5>(use as teclas direcionais)</h5>
<p>Notem que a bola foge do palco então vamos dar uma melhorada no código substituindo a função onEnter do código anterior por essa :</p>
<pre lang="ActionScript"  line=1>function onEnter(e:Event):void{
    vx += ax;
    vy += ay;

    if((bola_mc.x &lt; bola_mc.width/2) || (bola_mc.x &gt; stage.stageWidth - bola_mc.width/2)){
      vx *= -1;
    }
    bola_mc.x += vx;

    if((bola_mc.y &lt; bola_mc.height/2) || (bola_mc.y &gt; stage.stage.stageHeight -   bola_mc.height/2)){
      vy *= -1;
   }
bola_mc.y += vy;

}</pre>
<p>O incremento da velocidade permanece da mesma foram a diferença é que quando a bola chegar nas extremidades do palco receber sua velocidade inversa. Notem que não utilizamos a posição zero como limite porque o registration do movieclipe está no centro por isso usamos a metade de suas medidas e para usarmos a largura e altura total do stage utilizamos stage.stageWidth e stage.stageHeight. O resultado que temos é esse :</p>
<p><object type="application/x-shockwave-flash" data="http://www.fellyph.com.br/blog/wp-content/uploads/2008/09/bola_teclado_2.swf" width="450" height="400" class="embedflash"><param name="movie" value="http://www.fellyph.com.br/blog/wp-content/uploads/2008/09/bola_teclado_2.swf" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><small>(Please open the article to see the flash file or player.)</small></object></p>
<p>Até a próxima&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fellyph.com.br/blog/geral/trabalhando-com-o-teclado-em-actionscript-30/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

