<?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># Johnatan Oliveira ~ joww.net - Internet, Segurança, Tecnologia, Linux, Programação, Música e Vida Profissional &#187; actionscript</title>
	<atom:link href="http://www.joww.net/blog/tag/actionscript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.joww.net/blog</link>
	<description>Internet, Segurança, Tecnologia, Linux, Programação, Música e Vida Profissional</description>
	<lastBuildDate>Thu, 02 Sep 2010 13:13:59 +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>ActionScript 3.0 – Sintaxe</title>
		<link>http://www.joww.net/blog/2009/10/16/actionscript-3-0-%e2%80%93-sintaxe/</link>
		<comments>http://www.joww.net/blog/2009/10/16/actionscript-3-0-%e2%80%93-sintaxe/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 06:29:11 +0000</pubDate>
		<dc:creator>Johnatan Oliveira joww.net</dc:creator>
				<category><![CDATA[Action Script]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[action]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://www.joww.net/blog/?p=402</guid>
		<description><![CDATA[A sintaxe de uma linguagem define as regras que devem ser seguidas quando escrever código executável.]]></description>
			<content:encoded><![CDATA[<p>A sintaxe de uma linguagem define as regras que devem ser seguidas quando escrever código executável.</p>
<p><strong>Case sensitivity</strong></p>
<p>ActionScript é uma linguagem case-sensitive, o que significa que os identificadores diferem em case (letras maiúsculas de minúsculas). Abaixo, como exemplo duas variáveis diferentes:</p>
<p>[as3]var num1:int;<br />
var Num1:int;[/as3]</p>
<p><strong>Sintaxe de ponto (Dot sintax)</strong></p>
<p>O operador ponto (.) disponibiliza um caminho para acessar as propriedades e métodos de um objeto. Por exemplo, considere a classe:</p>
<p>[as3]class ExemploPonto {<br />
public var prop1 : String;<br />
public function metodo1() : void {}<br />
}<br />
[/as3]</p>
<p>Acessando a propriedade e o método da classe a partir de uma instância.<code><br />
</code></p>
<p>[as3]var meuPonto : ExemploPonto = new ExemploPonto();<br />
meuPonto.prop1 = “oi”;<br />
meuPonto.metodo1();[/as3]</p>
<p>Podemos usar <em>dot sintax</em> para definir pacotes, usando o operador ponto (.) para referir-se a pacotes internos. Por exemplo, a classe <em>EventDispatcher </em>está dentro de um pacote chamado <em>events, </em>que está dentro de um pacote chamado<em> flash. </em>Você pode fazer referencia ao pacote <em>events </em>usando a seguinte expressão:</p>
<p>[as3]flash.events[/as3]</p>
<p>Você também pode referir-se a classe EventDispatcher usando esta espressão:</p>
<p>[as3]flash.events.EventDispatcher[/as3]</p>
<p><strong>Literais</strong><br />
Um literal é um valor que aparece diretamente no seu código. Os exemplos abaixo são todos literais:</p>
<ul>
<li>17</li>
<li>&#8220;oi&#8221;</li>
<li>-3</li>
<li>9.4</li>
<li>null</li>
<li>undefined</li>
<li>true</li>
<li>false</li>
</ul>
<p>Literais também podem ser agrupados para formar literais compostos. Arrays literais são escritos dentro de colcheteses ([ ]) e são usadas virgulas para se separar os elementos do array.</p>
<p>Um array literal pode ser usado para inicializar um array. Abaixo exemplo de dois arrays sendo inicializados usando arrays literais. Você pode usar a declaração <em>new </em>e passar o literal composto como um parâmetro para o construtor da classe Array, mas você também pode declarar valores literais diretamente quando instancia instâncias das classes: Object, Array, String, Number, int, uint, XML, XMLList e Boolean.</p>
<p>[as3]// Usando a declaração new.<br />
var minhasStrings:Array = new Array(["alpha", "beta", "gamma"]);<br />
var meusNumeros:Array = new Array([1,2,3,5,8]);<br />
// Declarando diretamente com literais.<br />
var minhasStrings:Array = ["alpha", "beta", "gamma"];<br />
var meusNumeros:Array = [1,2,3,5,8];[/as3]</p>
<p>Literais podem ser usadas para inicializar um objeto genérico. Um objeto genérico é uma instância da classe Object. literais Object são colocados dentro de chaves ({ }) e usa vírgulas para separaras propriedades do objeto. Cada propriedade é declarada com dois pontos ( : ), que separa o nome da propriedade do valor da propriedade. Você pode usar a declaração <em>new </em>e passar o literal composto como um parâmetro para o construtor da classe Object. Veja o exemplo a seguir:</p>
<p>[as3]// Usando a declaração new.<br />
var meuObjeto:Object = new Object({propA:1, propB:2, propC:3});<br />
// Declarando diretamente com literais.<br />
var myObject:Object = {propA:1, propB:2, propC:3};[/as3]</p>
<p><strong>Ponto e vírgura ( ; )</strong></p>
<p>Você pode usar ponto e vírgula para terminar uma declaração. Alternativamente, se você omitir o ponto e vírgula, o compilador irá assumir que cada linha de código representa uma declaração.</p>
<p><strong>Parênteses</strong></p>
<p>Você irá usar parênteses em 3 casos:</p>
<p>1. Para alterar a ordem das operações em uma expressão. Operações agrupadas dentro de parênteses são executadas primeiro.</p>
<p>[as3]trace(2 + 3 *4); //14<br />
trace((2 + 3) *4); //20[/as3]</p>
<p>2. Você pode usar parênteses com o operador vírgula ( , ) para avaliar uma série de expressões e retornar o resultado no final da expressão.</p>
<p>[as3]var a:int = 2;<br />
var b:int = 3;<br />
trace((a++, b++, a+b)); // 7[/as3]</p>
<p>3. Você usa parênteses para passar um ou mais parênteses para funções ou métodos.</p>
<p>[as3]trace(&#8220;oi&#8221;);[/as3]</p>
<p><strong>Comentários</strong></p>
<p>O código ActionScript 3.0 suporta dois tipos de comentários: um linhas e de várias linhas. O compilador ignora o que estiver marcado como um comentário.</p>
<p>[as3]// comentário de uma linha<br />
/*<br />
comentário<br />
de várias<br />
linhas<br />
*/[/as3]</p>
<p><strong>Palavras-chave</strong></p>
<p>Palavras-chave não podem ser usadas como identificadores em seu código, pois estas palavras são reservadas para o ActionScript. As palavras reservadas incluem palavras-chave léxicas, que são transferidas para o namespace do programa pelo compilador. O compilador pode retornar um erro se você usar uma palavra léxica como um identificador. Abaixo uma lista de palavrasa lexicas:</p>
<ul>
<li>as</li>
<li>break</li>
<li>case</li>
<li>catch</li>
<li>class</li>
<li>const</li>
<li>continue</li>
<li>default</li>
<li>delete</li>
<li>do</li>
<li>else</li>
<li>extends</li>
<li>false</li>
<li>finally</li>
<li>for</li>
<li>function</li>
<li>if</li>
<li>implements</li>
<li>import</li>
<li>in</li>
<li>instanceof</li>
<li>interface</li>
<li>internal</li>
<li>is</li>
<li>native</li>
<li>new</li>
<li>null</li>
<li>package</li>
<li>private</li>
<li>protected</li>
<li>public</li>
<li>return</li>
<li>super</li>
<li>switch</li>
<li>this</li>
<li>throw</li>
<li>to</li>
<li>true</li>
<li>try</li>
<li>typeof</li>
<li>use</li>
<li>var</li>
<li>void</li>
<li>while</li>
<li>with</li>
</ul>
<p>Este é um grupo de palavras-chave, chamado palavras-chave sintática, estas podem ser usadas como identificadores, mas tem um significado especial em certos contextos. Abaixo a lista de palavras-chave sintáticas:</p>
<ul>
<li>each</li>
<li>get</li>
<li>set</li>
<li>namespace</li>
<li>include</li>
<li>dynamic</li>
<li>final</li>
<li>native</li>
<li>override</li>
<li>static</li>
</ul>
<p>Estes também são alguns identificadores que às vezes são referidos como <em>futuras palavras reservadas</em>. Estes identificadores não são reservados para o ActionScript 3.0, apesar de terem que ser tratadas como palavras-chave para produtos ActionScript 3.0 incorporados. Você esta apto a usar vários destes identificadores em seu código, mas a Adobe recomenda você não usar pois poderão aparecer como palavras-chave em futuras versões da linguagem.</p>
<ul>
<li>abstract</li>
<li>boolean</li>
<li>byte</li>
<li>cast</li>
<li>char</li>
<li>debugger</li>
<li>double</li>
<li>enum</li>
<li>export</li>
<li>float</li>
<li>goto</li>
<li>intrinsic</li>
<li>long</li>
<li>prototype</li>
<li>short</li>
<li>synchronized</li>
<li>throws</li>
<li>to</li>
<li>transient</li>
<li>type</li>
<li>virtual</li>
<li>volatile</li>
</ul>
<p>(via carlos tristacci)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joww.net/blog/2009/10/16/actionscript-3-0-%e2%80%93-sintaxe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Iniciando Actionscript 3.0</title>
		<link>http://www.joww.net/blog/2009/08/10/iniciando-actionscript-3-0/</link>
		<comments>http://www.joww.net/blog/2009/08/10/iniciando-actionscript-3-0/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 18:30:34 +0000</pubDate>
		<dc:creator>Johnatan Oliveira joww.net</dc:creator>
				<category><![CDATA[Action Script]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://www.joww.net/blog/?p=210</guid>
		<description><![CDATA[Iniciando Actionscript 3.0]]></description>
			<content:encoded><![CDATA[<p>Olá! Vou tentar apartir deste tutorial, passar sempre informações pertinentes sobre ActionScript 3.0, PHP e MySQL. Hoje vou tratar de as3.</p>
<p>Certamente a principal diferença entre as versões anteriores e o Actionscript 3.0 é que antes existiam diversos locais onde era possível a utilização dos códigos (timelines, movies, buttons, arquivos externos e etc). Hoje com o as3.0 a utilização é baseada em classes, onde os códigos são colocados dentro de métodos da classe.</p>
<p>No Actionscript 2.0:</p>
<div style="background-color:#393C40; border:thin solid #5B6066; padding:10px 10px 10px 10px">
<div class="code">
<pre class="actionscript3" style="font-family:monospace;"><span style="color: #B500F0; font-weight: bold;">class</span> <span class="style1">mx.transitions.Tween</span> {
}</pre>
</div>
</div>
<p>A  estrutura mínima de uma Classe quando programamos em Actionscript 3.0 é a seguinte:</p>
<div style="background-color:#393C40; border:thin solid #5B6066; padding:10px 10px 10px 10px">
<div class="code">
<pre class="actionscript3" style="font-family:monospace;"><span style="color: #B500F0; font-weight: bold;">package</span> {
    <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #B500F0; font-weight: bold;">class</span> MinhaClasse {
        <span style="color: #00FB00;">// aqui, funções da minha classe</span>
    }
}</pre>
</div>
</div>
<p>Apenas uma  classe pública é permitida por classe. Outras classes podem ser declaradas no  mesmo arquivo, mas apenas uma pode ser pública.</p>
<p>É de extrema importância o conhecimento básico de  orientação a objetos, facilitará e muito o uso.</p>
<p>Uma classe de as3 é um arquivo com extensão “.as”  contendo o bloco de código. O nome do arquivo deve ser exatamente igual ao da  classe, incluindo diferenças entre maiúsculas e minúsculas.</p>
<p>No exemplo acima, o nome do meu arquivo seria “MinhaClasse.as”.</p>
<p>Todo projeto desenvolvido utilizando a framework Adobe  Flash tem como raiz a mesma pasta do arquivo FLA. Em nosso exemplo, eu devo  colocar o arquivo MinhaClasse.as no mesmo local que o FLA que irá utilizá-lo.</p>
<p>Você poderá utilizar pastas e subpastas, é para isso que  o Package serve, organização.</p>
<p>Por exemplo,  se você quiser utilizar o arquivo as dentro da pasta “aplicacao”, seu script  ficaria assim:</p>
<div style="background-color:#393C40; border:thin solid #5B6066; padding:10px 10px 10px 10px">
<div class="code">
<pre class="actionscript3" style="font-family:monospace;"><span style="color: #B500F0; font-weight: bold;">package</span> aplicacao {
    <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #B500F0; font-weight: bold;">class</span> MinhaClasse {
        <span style="color: #00FB00;">// aqui, funções da minha classe</span>

    }
}</pre>
</div>
</div>
<p>Se fosse na  pasta “aplicacao”, subpasta “geral” o script deve ser mudado para:</p>
<div style="background-color:#393C40; border:thin solid #5B6066; padding:10px 10px 10px 10px">
<div class="code">
<pre class="actionscript3" style="font-family:monospace;"><span style="color: #B500F0; font-weight: bold;">package</span> aplicacao.geral {
    <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #B500F0; font-weight: bold;">class</span> MinhaClasse {
        <span style="color: #00FB00;">// aqui, funções da minha classe</span>

    }
}</pre>
</div>
</div>
<p>Quando se  omite o package, a classe e definida por padrão como top-level.</p>
<p>Você sempre  terá que escrever em qual lugar a classe estará, isso é extremamente necessário  tanto para organização, quanto para funcionamento, sem esquecer das maiúsculas  e minúsculas.</p>
<h3>Duas classes  com mesmo nome!?</h3>
<p>Pode  acontecer. Caso você tenha duas classes com o mesmo nome, a utilização do  Package é essencial para não ocorrer erros no projeto. É só informar qual a  classe o o Package que você esta requisitando.</p>
<p>Antes de  começar a praticar, é importante o conhecimento sobre Orientação a Objetos, vou  falar um pouco sobre isso e logo depois a prática.</p>
<h3>Document Class</h3>
<p>Document  Class é como se fosse a Classe inicial do seu projeto. Mesmo que você esqueça  de criar a sua classe inicial, o flash criará uma para você automaticamente  durante o processo de compilação do projeto.</p>
<p>Nosso  objetivo é utilizar todo o projeto usando arquivos externos .as e não códigos desorganizados  dentro do arquivo .fla, então vamos sempre definir claramente nossa Document  Class.</p>
<h3>Extensão de  Classe</h3>
<p>A extensão  de uma classe, é uma das definições da Orientação a Objetos.</p>
<p>É importante saber o que se esta escrevendo e testando, por isso saber por que  usamos o “extends” na definição de uma classe é essencial.</p>
<p>Extender uma  classe é utilizar recursos de uma classe já existente, adicionando ou  modificando eventos. Assim tudo que existe na classe original continua funcionando  na classe que foi extendida.</p>
<p>Exemplificando:  Tenho a classe Animal e classe Gato. Sendo que Gato extends Animal, ou seja,  todas as características padrões instanciadas na classe Animal, serão  extendidas a classe Gato, porém as novas funções adicionadas em Gato, não serão  de Animal.</p>
<p>Finalizando,  quando eu compilo meu projeto .fla eu gero um swf, este é um MovieClip. O  MovieClip é uma Classe. A minha Document Class tem que funcionar como o  MovieClip, logo minha Document Class tem que ser uma extenção da Classe  MovieClip.</p>
<p>Exemplo:</p>
<div style="background-color:#393C40; border:thin solid #5B6066; padding:10px 10px 10px 10px">
<div class="code">
<pre class="actionscript3" style="font-family:monospace;"><span style="color: #B500F0; font-weight: bold;">package</span> {
	<span style="color: #0033ff; font-weight: bold;">import</span> <span>flash.display.MovieClip</span>
    <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #B500F0; font-weight: bold;">class</span> MinhaClasse extends <span>MovieClip</span> {
        <span style="color: #00FB00;">// aqui, funções da minha classe</span>

    }
}</pre>
</div>
</div>
<p>Já diria Pelé!:  “entende!??”</p>
<p>Ops! Para  que aquele import? Eu tenho que dizer ao aplicativo, quem é a Classe MovieClip  que MinhaClasse vai extender!</p>
<p>Todas as  classes importadas devem ser definidas logo na abertura do package antes da  definição da classe.</p>
<p>Você poderá  usar a Classe Sprite (import flash.display.Sprite;), que é semelhante a classe  MovieClip, mas não possui uma timeline.</p>
<h3>Vamos a  prática!</h3>
<p>Vamos ao  famoso Hello World. Como diria &#8230;, vamos por partes, a muita coisa para ser  vista e testada.</p>
<div style="background-color:#393C40; border:thin solid #5B6066; padding:10px 10px 10px 10px">
<div class="code">
<pre class="actionscript3" style="font-family:monospace;"><span style="color: #B500F0; font-weight: bold;">package</span> {

	<span style="color: #0033ff; font-weight: bold;">import</span> <span>flash.display.MovieClip</span>

    <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #B500F0; font-weight: bold;">class</span> MinhaClasse extends <span>MovieClip</span> {<span class="style1">
<strong>		<span style="color: #0033ff; font-weight: bold;">public</span></strong>  <span style="color: #00FB00;">function</span>  <span class="actionscript3" style="font-family:monospace;">MinhaClasse</span>() {
			trace("Hello World  joww!!");
  		}<strong></strong>
</span>	}
}</pre>
</div>
</div>
<p>Você deve ter percebido que criei uma function  com o mesmo nome da class, esta é uma função construtora que iniciará a classe,  o nome da função construtora deve ter exatamente o mesmo nome da classe (MinhaClasse).</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-226" title="settings" src="http://www.joww.net/blog/wp-content/uploads/2009/08/settings.jpg" alt="settings" width="454" height="288" /></p>
<p style="text-align: center;">No  inspetor de propriedades em “Document class:” coloque o nome da classe a ser  executada.</p>
<h3>Teste&#8230;</h3>
<p>Agora que  temos o nosso “MinhaClasse.as”, seguinte:</p>
<ol type="1">
<li>Crie um novo arquivo       FLA com ActionScript 3 e salve com um nome qualquer!</li>
<li>Coloque o arquivo “MinhaClasse.as”       na mesma pasta que o FLA;</li>
<li>Nas propriedades do FLA,       preencha o valor da Document Class apenas com a palavra MinhaClasse;</li>
<li>CTRL + Enter!</li>
</ol>
<p>Até a próxima pessoal!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joww.net/blog/2009/08/10/iniciando-actionscript-3-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
