ActionScript/Classes: diferenças entre revisões

[edição verificada][revisão pendente]
Conteúdo apagado Conteúdo adicionado
He7d3r.bot (discussão | contribs)
Atualizando a categoria do livro, com AutoCat (detalhes). utilizando AWB
m <source> -> <syntaxhighlight> (phab:T237267)
 
Linha 2:
Classe é o fundamento da programação orientada a objetos. Elas oferecem um modo simples e organizado para organizar métodos e atributos. Podemos dizer que, sem classes, não há OOP. Se você nunca trabalhou com classes, é interessante aprender, pois sem classes não há como programar efetivamente em AS 3.0, pois esta é toda OO.
 
As classes no ActionScript 3.0 devem sempre estar inseridas dentro de pacotes (<sourcesyntaxhighlight lang=actionscript3 enclose=none>package</sourcesyntaxhighlight>). Veja o exemplo a seguir:
<sourcesyntaxhighlight lang=actionscript3>
package {
import flash.display.MovieClip;
Linha 12:
}
}
</syntaxhighlight>
</source>
 
Iniciamos escrevendo a palavra <sourcesyntaxhighlight lang=actionscript3 enclose=none>package</sourcesyntaxhighlight> (pacote) dentro do arquivo que será salvo com a extensão ''.as'' (todo arquivo ActionScript tem que ter esta extensão). O pacote pode ter um nome (<sourcesyntaxhighlight lang=actionscript3 enclose=none>package teste</sourcesyntaxhighlight>, por exemplo), mas não é obrigatório.
 
A próxima linha (<sourcesyntaxhighlight lang=actionscript3 enclose=none>import flash.display.MovieClip</sourcesyntaxhighlight>) se refere a todos os pacotes que deveram ser importados que serão usados na compilação do nosso pacote.
 
Já <sourcesyntaxhighlight lang=actionscript3 enclose=none>public class Main extends MovieClip</sourcesyntaxhighlight> explicita que a classe é pública (<sourcesyntaxhighlight lang=actionscript3 enclose=none>public class</sourcesyntaxhighlight>), ou seja, está aberta para uso em outras partes do projeto.
 
A frase <sourcesyntaxhighlight lang=actionscript3 enclose=none>extends MovieClip</sourcesyntaxhighlight> faz com que todos os métodos e atributos do pacote MovieClip seja utilizador pela nossa classe "Main". Isso se chama herança, e veremos mais sobre isso mais para frente.
 
E <sourcesyntaxhighlight lang=actionscript3 enclose=none>public function Main()</sourcesyntaxhighlight> é o método construtor da classe. Será a função invocada (no caso, executará a função <sourcesyntaxhighlight lang=actionscript3 enclose=none>trace()</sourcesyntaxhighlight>) quando a classe é instanciada. Para instanciar, ou seja, passar os métodos e atributos para uma instância, basta fazer isto:
<sourcesyntaxhighlight lang=actionscript3>
var main:Main = new Main();
</syntaxhighlight>
</source>
 
Agora, a variável <sourcesyntaxhighlight lang=actionscript3 enclose=none>main</sourcesyntaxhighlight> tem os atributos e métodos da classe <sourcesyntaxhighlight lang=actionscript3 enclose=none>Main</sourcesyntaxhighlight>, se tornando uma instância de <sourcesyntaxhighlight lang=actionscript3 enclose=none>Main</sourcesyntaxhighlight>.
 
== Caminhos de classes ==
 
Você pode querer organizar os caminhos de classes em pastas para facilitar o seu projeto. Isso é possível descriminando na parte de <sourcesyntaxhighlight lang=actionscript3 enclose=none>import</sourcesyntaxhighlight> o local onde está o arquivo ''.as'' externo. Por exemplo: se você tem uma classe que gostaria de usar na pasta ''minhapasta'', você deveria acrescentar a ao arquivo que importará esta linha <sourcesyntaxhighlight lang=actionscript3 enclose=none>import minhapasta.MinhaClasse;</sourcesyntaxhighlight>. E no pacote a ser importado, ele deverá ter como caminho <sourcesyntaxhighlight lang=actionscript3 enclose=none>package minhapasta</sourcesyntaxhighlight>. Se você preferir importar tudo do pacote, você pode importar como <sourcesyntaxhighlight lang=actionscript3 enclose=none>import minhapasta.*;</sourcesyntaxhighlight>.
 
Exemplo:
 
Arquivo ''Mamifero.as'' localizado na pasta ''tipo'' (C:/tipo/Mamifero.as):
<sourcesyntaxhighlight lang=actionscript3>
package tipo{
import flash.display.MovieClip;
Linha 53:
}
}
</syntaxhighlight>
</source>
 
Arquivo ''Homem.as'' que importará ''Mamifero.as'' (C:/Homem.as):
<sourcesyntaxhighlight lang=actionscript3>
package {
import flash.display.MovieClip;
Linha 68:
}
}
</syntaxhighlight>
</source>
 
== Atributos de propriedades de classes ==