Aniversário do RiaPT: a minha apresentação sobre a Display List
Foi com enorme satisfação que participei e ajudei no evento de aniversário da comunidade. Espero que esta continue a crescer conforme tem demonstrado, e tenho a certeza que ano de 2008 será o ano de expansão das RIAs a nível mundial mas também neste nosso cantinho ao fundo da Europa chamado Portugal.
Quero desde já referir também a qualidade das apresentações do evento que superaram e de que maneira as minhas expectativas. Sem desprimor para as restantes, os meus parabéns para as apresentações do Paulo Moreira e do Luís Costa, pois apresentando exemplos de aplicações reais acho que se destacaram das outras.
Concordo com o João e outros que já comentaram o evento na mailing list, nomeadamente que no próximo teremos que fazer um programa com horário, intervalos, coffee breaks, jantar, strippers, convívio, …, pois penso que aí falhamos, mas também acho que esta falha foi resultado da grande afluência e o que se projectou ser uma reunião informal, acabou por ser um workshop de muito bom nível. Tenho a certeza que para a próxima não falharemos nesse aspecto.
Não posso também deixar de referir o meu agradecimento a FLAG pelo apoio e disponibilização das suas instalações para a realização deste evento.
Para concluir e em jeito de mini tutorial, vou deixar aqui um resumo da minha apresentação - Display List em Flash CS3, conforme prometido, e apelar também a todos aqueles menos “geeks” da comunidade que não se acanhem e comecem também a participar. É essencialmente a esses a quem eu me quis dirigir com esta apresentação, e a todos os que estão em processo de migração do AS2 para o AS3..
Display API / Display List em AS3
Umas das principais funcionalidades do Actionscript é mostrar elementos no ecrân. Para tal a plataforma Flash disponibiliza-nos uma grande variedade de ferramentas para criar e manipular elementos gráficos que poderão ser divididas em 2 categorias:
- Flash runtime API: são um conjunto de classes que permitem utilizar e interagir com elementos visuais, assim como utilizar bitmaps e formas vectoriais.
- User Interface Components
- o conjunto de UI componentes da framework do Flex, uma colecção personalizável de pequenas user-interfaces construidas em cima da Display API.
- o conjunto de UI componentes do Flash, semelhante ao do Flex mas simplificado e com funcionalidades mais limitadas, assim como em muito menor numero.
A Display API, está presente em todas as plataformas Flash e portanto disponível em qualquer ficheiro .swf . Todos os elementos gráficos criados em Actionscript são criados e manipulados através do conjunto de classes que constituem esta API.
Todas estas classes estão hierarquizadas de forma reflectir 3 níveis de funcionalidades, nomeadamente: Visualização, Interactividade e de Contentor. Estas funcionalidades correspondem as classes DisplayObject, InteractiveObject e DisplayObjectContainer. Estas classes não podem ser instanciadas e servem unicamente como Abstracção para classes mais concretas e que estão estruturadas da seguinte forma:

No 1º Nível teremos todas as classes que descendem da class DisplayObject, e por esse motivo qualquer instância destas poderá ser posicionada, escalada, etc… Ou seja, podemos utilizar as propriedades x, y, width, height,…. Teremos também neste nível métodos de conversão de coordenadas como localToGlobal(), globalToLocal(), …, e possibilidade de testar colisões ou intersecções com os métodos hitTestPoint(), hitTestObject(), … Podemos também a estas classes aplicar transformações, mascaras e filtros.
No 2º Nível teremos todas as classes que descendem da classe InteractiveObject pelo que todas as instâncias destas poderão responder a eventos de rato e teclado.
No 3º Nível, teremos as classes que descendem do DisplayObjectContainer pelo que essencialmente é-lhes acrescentada a particularidade de poderem conter outras instâncias dentro destas, sendo que o nível de sobreposição dentro de cada container será gerido pela Display List como será explicado seguidamente. Dentro destas classes temos o MovieClip e o Sprite cuja diferença é essencialmente o facto do Sprite ser um MovieClip sem timeline (um MovieClip só com uma frame).
Display List
Definidas as classes visuais, a gestão de como todos os elementos gráficos aparecem no palco é feita por uma Display List, que não é mais nem menos que uma estrutura hierárquica que gere os níveis de sobreposição de todos os elementos de um .swf - pode ser vista como a sobreposição de objectos no eixo dos zz, tal como se faz com as layers no Photoshop ou outra aplicação do género.
Ao ser criado um .swf é criada uma instância da classe Stage, instância esta que irá conter a nossa aplicação Flash, seja esta feita directamente na timeline, ou criada por uma Document Class. Dentro da instância da aplicação serão acrescentados todos os elementos gráficos através do método addChild(), ou addChildAt(), conforme a representação gráfica que se segue:

Depths
Acrescentar elementos à Display List faz com que o nível de sobreposição seja sequencial e a medida que se acrescenta um elemento este fica numa hierarquia superior ao elemento anterior. No entanto poderemos utilizar alguns métodos para remover, alterar, trocar, ler níveis. É de salientar que esta gestão é gerida toda ela pela própria Display List, não podendo haver níveis vazios entre elementos gráficos. Podem experimentar alguns destes métodos na animação que se segue, sendo que se quiserem poderão também ler o código desta neste ficheiro .fla:
Despeço-me por aqui, e espero que este seja o primeiro de muitos posts para aquele pessoal menos “geek. Desafio também o resto dos presentes a participar, e mais uma vez foi um prazer fazer parte do evento.
4 Comments
Make A CommentComments RSS Feed TrackBack URL
December 17th, 2007 at 12:45 pm
Mt bom artigo joão!
December 17th, 2007 at 2:06 pm
Nunca vi um artigo tão bom na minha vida!! 5 estrelas mesmo
December 17th, 2007 at 5:25 pm
Eu contribuo para os elogios feitos até então. Muito bom mesmo. Eu concordo plenamente com uma opinião do joão, não querendo desrespeitar os restantes elementos do RiaPT, para conseguir subir nos degraus do conhecimento, tem de existir matéria mais introdutória, ou seja, menos complexa como este exemplo do João que dá para perceber como estão estruturadas as Classes dentro do flash. Volto a dizer que não quero com isto dizer que não é uma excelente comunidade, mas neste aspecto deve-se fazer um esforço. Coninuem assim… Um abraço
January 1st, 2008 at 7:21 pm
Boa tarde!
Descobri agora este endereço e ouvi falar de um Adobe Flex Camp em Portugal em Fevereiro.
Onde posso encontrar mais informação sobre isso?
Obrigado.