ActionScript/Adicionando e removendo child: diferenças entre revisões

[edição verificada][revisão pendente]
Conteúdo apagado Conteúdo adicionado
He7d3r.bot (discussão | contribs)
→‎Profundidade: Trocando categorização manual por AutoCat (o indexador da categoria estava incorreto) [ usando AWB ]
m <source> -> <syntaxhighlight> (phab:T237267)
 
Linha 1:
O ato de adicionar e remover objetos no ActionScript 3.0 sofreu grande mudança em comparação ao modo de ser fazer das versões anteriores. Para adicionar um objeto novo à lista de exibição basta chamar o método <code>addChild()</code>.
 
<sourcesyntaxhighlight lang="actionscript3">
var sp:Sprite = new Sprite();
var g:Graphics = sp.graphics;
Linha 12:
// O método que fará com que ele seja exibido no palco...
addChild(sp);
</syntaxhighlight>
</source>
 
Declarar somente <code>addChild()</code> faz com que ele seja adicionado ao palco no geral. Para adicioná-lo ao um contâiner de objetos (como um objeto ''MovieClip'') você pode chamar o método addChild do clipe de filme que será o recipiente de Sprites, etc.:
 
<sourcesyntaxhighlight lang="actionscript3">
var sp:Sprite = new Sprite();
var g:Graphics = sp.graphics;
Linha 30:
// Adicionando sp ao clipe...
mc.addChild(sp);
</syntaxhighlight>
</source>
 
<blockquote>''Você pode ver uma explicação completa sobre desenhar com códigos na seção de Desenhando com vetores.''</blockquote>
Linha 36:
Para remover um objeto chame-o através da função <code>removeChild()</code>. Só remover não irá tirar o objeto da memória; para isso, você precisa declarar seu valor como <code>null</code>. Assim, o coletor de lixo perceberá e o removerá da memória (se você quiser utilizar o objeto em outra ocasião não o remova da memória).
 
<sourcesyntaxhighlight lang='actionscript3'>
/* Baseando-se no exemplo anterior
Removendo o Sprite sp */
Linha 43:
// Removendo da memória
sp = null;
</syntaxhighlight>
</source>
=== Profundidade ===
Para inserirmos um objeto em uma determinada propriedade usamos o método <code>addChildAt()</code>, que leva dois parâmetros: o objeto em questão e a profundidade, que se for 0 ficará atrás de todos (é sempre um valor inteiro e positivo) e pode ser 1, 2, e assim por diante.
 
<sourcesyntaxhighlight lang='actionscript3'>
 
// Função para desenhar que retorna um Sprite
Linha 61:
addChildAt(desenhe(50,50, 0x000099), 0);
addChildAt(desenhe(40,100, 0x009900), 1); // Este ficará na frente do retângulo azul
</syntaxhighlight>
</source>
 
Para remover um objeto de uma determinada profundidade use o método <code>removeChildAt()</code> com o número dela.
 
<sourcesyntaxhighlight lang='actionscript3'>
removeChildAt(0); // Removerá o retângulo verde
</syntaxhighlight>
</source>
{{AutoCat}}