attachMovie no AS3? Onde?

Já faz um tempinho que eu estou mexendo com o AS3, mas até o momento eu não havia necessitado usar itens da biblioteca.

Quando construí­mos menus ou coisas do tipo, é comum criarmos um MovieClip como modelo do botão, deixá-lo na biblioteca e anexá-lo ao filme dinamicamente.

No AS2 usava-se a função attachMovie, mas, e no AS3? Dando uma olhada na documentação, descobri que attachMovie não existe mais, e deve-se usar o método addChild.

E foi aí que eu vi que a coisa realmente mudou. Como eu faço referência ao item da biblioteca?

Bom, fui em linkage no meu item da biblioteca (Item > Clique direito > Linkage…), e vi que o famoso Identifier não existe mais (o campo está desabilitado, pra ser mais preciso). Agora existe um campo Class e um Base class, que no caso do meu MovieClip tinha valor flash.display.MovieClip.

Quando eu defino um valor em Class, por exemplo ItemMenu, o Flash passa a considerar aquele MovieClip uma classe.

Dessa forma, quando eu quiser anexar esse MovieClip em meu palco, eu devo criar uma instância dele (pois ele é uma classe a partir de agora) e aí­ então passar essa instância para o addChild colocar ela no palco.

1
2
var item:ItemMenu = new ItemMenu();
this.addChild(item);

Eu acho que ficou mais fácil trabalhar com objetos da biblioteca, principalmente pra quem está começando na linguagem.

9 Comments

  1. Leandro Ferreira

    legal a iniciativa do blog, mozart, pelo jeito teremos bons posts por aqui =]

  2. Gostei do post mas tenho uma duvida, no caso de uma galeria de fotos eu tenho q “atachar” varios movieClips. Como q eu faço isso dentro de um loop for ?

  3. Flávio Silveira

    Maneiro….

    Esse cara é fera hein !!!!????

    Demais…

  4. Maurício Maran

    onde eu preciso que o indentificador seja dinâmico, o que devo fazer? com o attachmovie eu usava uma string, e agora?

  5. Concordo com Flávio Silveira, esse e o cara mais foda que ja teve por aqui, deve ser cheio do ouro.

  6. Blza ficou ótimo isto mesmo, mas tenho um pequeno problema… tenho dados que são puxados do XML… e precisaria fazer algo tpw alvo["mc"+i].attachMovie(icone); só que a variável ícone vem do XML… então no caso do AS3 ainda não axei solução para isto…

    Axei o AS3 infinitamente melhor que o AS2, porém tem muita coisa q foi removido para complicar nossas vidas… e o attachMovie foi uma delas, loadMovie outra…

  7. Bom, pra falar a verdade to encontrando tanto bug já nesse actionscript 3 que estou pensando em largar a mão… por exemplo quando faço uma animação em uma mascara sobre um texto dinâmico… no último frame ele seta o texto original da box do texto… sempre no último frame da minha animação… e até agora não descobri como que faz para instanciar o objeto num looping… precisaria instanciar como se fosse AS2… tpw alvo["botao"+i] … axo que não havia a necessidade de remover tanta coisa assim do AS3

  8. Para os que tinham dúvidas, segue um pequeno texto explicativo:
    http://www.mozartpetter.com/pt/flash-trabalhando-com-objetos-na-biblioteca

Trackbacks/Pingbacks

  1. [...] algum tempo atrás eu escrevi um pequeno post, que mostrava como anexar itens da biblioteca ao palco no AS3, uma vez que o attachMovie do AS2 foi [...]

Leave a Comment