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.
legal a iniciativa do blog, mozart, pelo jeito teremos bons posts por aqui =]
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 ?
Maneiro….
Esse cara é fera hein !!!!????
Demais…
onde eu preciso que o indentificador seja dinâmico, o que devo fazer? com o attachmovie eu usava uma string, e agora?
Concordo com Flávio Silveira, esse e o cara mais foda que ja teve por aqui, deve ser cheio do ouro.
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…
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
Para os que tinham dúvidas, segue um pequeno texto explicativo:
http://www.mozartpetter.com/pt/flash-trabalhando-com-objetos-na-biblioteca