<?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>Leandro Palomo da Costa &#187; Actionscript 3.0</title>
	<atom:link href="http://www.leandropalomo.com.br/blog/?feed=rss2&#038;cat=3" rel="self" type="application/rss+xml" />
	<link>http://www.leandropalomo.com.br/blog</link>
	<description>Programador Flash(Actionscript 3)</description>
	<lastBuildDate>Tue, 22 Sep 2009 00:35:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>SOS AS3 &#8211; Chamando classes pelo nome</title>
		<link>http://www.leandropalomo.com.br/blog/?p=58</link>
		<comments>http://www.leandropalomo.com.br/blog/?p=58#comments</comments>
		<pubDate>Mon, 06 Oct 2008 02:21:40 +0000</pubDate>
		<dc:creator>Leandro</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Geral]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[chamar classes pelo nome]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[getDefinitionByName]]></category>
		<category><![CDATA[sos AS3]]></category>

		<guid isPermaLink="false">http://www.leandropalomo.com.br/blog/?p=58</guid>
		<description><![CDATA[No AS2, quando precisamos chamar movieClips sequenciais ou o nome do movieClip vem numa string, como quando vem num XML, usamos o modelo level["mcName"]. No AS3 isso não existe, mesmo os movieClips da biblioteca têm de ser instanciados, não existe mais o &#8220;attachMovie&#8221; e o universo OOP não permite que uma classe seja instanciada com [...]]]></description>
			<content:encoded><![CDATA[<p>No AS2, quando precisamos chamar movieClips sequenciais ou o nome do movieClip vem numa string, como quando vem num XML, usamos o modelo level["mcName"]. No AS3 isso não existe, mesmo os movieClips da biblioteca têm de ser instanciados, não existe mais o &#8220;attachMovie&#8221; e o universo OOP não permite que uma classe seja instanciada com uma string (pelo menos teóricamente).</p>
<ul></ul>
<p>Mas há uma saída, a função getDefinitionByName(), e não é a toa que está no pacote flash.utils, há várias utilidades pra essa função.</p>
<p>Bom, se você está lendo esse artigo, acredito que esteja quebrando a cabeça procurando essa solução, e não precisa que eu diga pra quê ela será útil. De qualquer forma, segue um exemplo simples de uso, que servirá como parâmetro da sintaxe também:</p>
<ul>
<li>Crie um arquivo .fla e coloque na biblioteca dele 3 itens, com &#8220;linkage names&#8221; quadrado1, quadrado2 e quadrado3;</li>
<li>Agora crie uma classe GetDefinitionExample;</li>
<li>Entre no &#8220;Publish Settings&#8221; do arquivo FLA e coloque o nome da classe como &#8220;Document Class&#8221;;</li>
<li>Insira o código a seguir no arquivo da classe:</li>
</ul>
<p><code><br />
package<br />
{<br />
import flash.display.MovieClip;<br />
import flash.utils.getDefinitionByName;<br />
/**<br />
* ...<br />
* @author LeandroPalomo<br />
*/<br />
public class GetDefinitionExample extends MovieClip<br />
{<br />
public function GetDefinitionExample()<br />
{<br />
for (var i:int = 1; i &lt;= 3; i++ )<br />
{<br />
var quadradoDaVez:Object = getDefinitionByName("quadrado" + String(i));<br />
var quadrado = new quadradoDaVez();<br />
quadrado.x = quadrado.width * i;<br />
quadrado.y = quadrado.height * i;<br />
addChild(quadrado);<br />
}<br />
}<br />
}<br />
}<br />
</code></p>
<ul>
<li>Exporte o arquivo e, se tudo der certo, os três quadrados devem ser instanciados e adicionados ao stage.</li>
</ul>
<p>Ficamos por aqui. Bons testes e estudos, espero ter ajudado!!</p>
<p>Os arquivos usados neste exemplo estão <a title="aqui" href="http://www.leandropalomo.com.br/blog/wp-content/uploads/2008/10/getdefinitionbyname.rar">aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandropalomo.com.br/blog/?feed=rss2&amp;p=58</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
