May
16

Flash Player 10 beta disponível no Adobe Labs

A Adobe disponibilizou o Flash Player 10 no Adobe Labs. Esta nova versão do Flash Player traz novidades revolucionárias, como suporte de 3D nativo, aceleração por hardware, e suporte para filtros e efeitos criados pelo utilizador.

A versão do Flash Player disponibilizada é compatível com Windows, MacOS (>=10.4), Linux e Ubuntu.

Novas funcionalidades

Filtros e efeitos criados pelo utilizador > ver vídeo

Através do Adobe Pixel Bender quem quiser pode agora criar novos filtros e aplicá-los nas suas aplicações Flash de uma forma tão simples como fazia anteriormente com os filtros existentes. Os filtros criados pelo utilizador podem ser aplicados a qualquer tipo de DisplayObject, desde imagens e vectores a vídeo. Os filtros podem depois ser animados em runtime.

Suporte 3D nativo > ver vídeo

Podemos finalmente usar 3D nas nossas aplicações sem termos que recorrer ao Papervision 3D, Sandy ou Away3D, graças ao suporte embutido da coordenada Z. O melhor é ver o vídeo acima. :)

Melhorias drásticas no suporte a texto > ver vídeo

O suporte a texto foi drasticamente melhorado, permitindo:

  • Aplicar anti-alias, rotações, etc, às fontes de sistema (device fonts);
  • Suporte a texto right-to-left;
  • Suporte a elementos tipográficos, como ligaduras tipográficas;
  • Controlo do layout do texto através de tabelas, imagens inline, colunas;
  • Suporte de anti-aliasing avançado (Saffron 3.1), que aumenta a performance e a qualidade das fontes anti-aliased;

Melhorias à Drawing API > ver vídeo

É agora muito mais fácil desenhar sem ser necessário recorremos à técnica do “lineTo”, “lineTo”, “lineTo”, sendo possível construir figuras complexas com relativa simplicidade. Uma das características da nova Drawing API é a possibilidade de alterar figuras já construídas - o que simplificará largamente o processo de se animarem figuras desenhadas pelo utilizador.

Aumento da performance visual graças a aceleração por hardware > ver vídeo

Através de um parâmetro no código de Embed do SWF o Flash Player passará a utilizar a placa gráfica para calcular efeitos de composição de bitmaps, filtros, blend modes, vídeo, etc, deixando mais espaço para o CPU respirar. Em utilizadores cuja gráfica na seja suportada, o Flash Player adapta-se para utilizar o processador, tal como acontecia antes.

Suporte de audio e vídeo melhorados

Foi introduzido o suporte de Dynamic Streaming que permite que seja ajustada automaticamente do lado do servidor a qualidade do vídeo de forma a optimizar a experiência de visualização do utilizador, evitando-se o efeito de “vídeo aos soluços”. Este ajustamento é feito através de cálculos de qualidade do serviço que medem tanto as condições da rede (largura de banda) ao longo do tempo, como informações do CPU.

O suporte de streaming por RTMP também foi melhorado, sendo introduzido o protocolo RTMFP que não é mais do que o RTMP a correr sobre UDP, obtendo-se uma performance muito superior.

O audio também foi melhorado com a introdução de um novo codec - Speex - que permitirá uma melhor qualidade de som com menores necessidades de largura de banda.

Acesso ao FileReference em runtime

Esta é uma das minhas funcionalidades favoritas! É agora possível utilizar a janela de browse para escolher um ou mais ficheiros no disco, manipulá-los localmente (sem ser preciso enviar para o servidor), e depois voltar a colocá-los no disco. Basicamente, o utilizador poderá agora escolher, por exemplo, uma imagem com vários megas, sendo imediatamente carregada no Flash Player (sem ser preciso ser enviada para o servidor). Poderão posteriormente ser aplicadas transformações à imagem, e ser gravadas localmente ou no servidor, caso o pretendamos.

Outras funcionalidades

  • Gestão de cor - os SWFs podem ser convertidos para sRGB, e podem utilizar os perfis de cor (ICC) dos monitores;
  • Geração dinâmica de som;
  • Novo tipo de dados: Vector - este novo tipo de dados foi introduzido em conformidade com a norma EcmaScript 4, resultando em ganhos de performance. Um Vector é o mesmo que uma matriz, com a particularidade de que todos os elementos que agrega são do mesmo tipo de dados;
  • Suporte de bitmaps até 16,777,216 pixeis (4096×4096)
  • Controlo do context menu: temos agora mais poder sobre o context menu, sendo inclusivé possível colocar Rich Text nas opções do context menu;
  • Suporte à norma GB18030 (o conjunto de caracteres chineses mais recente);
  • Suporte ao Ubuntu OS.

Para experimentar a nova versão do Flash Player será preciso remover a anterior. Para quem trabalha com Flash/Flex e não quiser perder o Flash Debug Player, é recomendado que removam o Flash Player 9 apenas no Internet Explorer e instalem o Flash Player 10 para IE, mantendo o Flash Debug Player 9 no Firefox.

Mais informações sobre o Flash Player 10 aqui.




Mar
31

Adobe AIR para Linux

A Adobe acabou de disponibilizar no Labs a primeira versão do AIR runtime para Linux.

Esta é a primeira versão alpha do produto e ainda não dispõe de todas as funcionalidades da versão 1.0.

Abaixo seguem a lista de funcionalidades ainda não disponiveis nesta primeira versão pública.

  • Notificações em runtime/ update em background
  • Intalação pelo Badge
  • Associação de tipos de ficheiros
  • Suporte de icon de System tray icon e menus
  • Aceleração por Hardware
  • Inicialização da aplicação pelo browser
  • Suporte para IPv6
  • Aceleradores de Keyboard
  • Screen API (Suporte para multi-monitores)
  • DRM, Armazenamento local encriptado e Certificados
  • A/V Hardware API
  • Impressão
  • Execução da aplicação no arranque
  • PDF e SWF dentro de HTML

Poderão também encontrar a última versão do Flex Builder para Linux aqui.




Dec
17

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:

Display API - classes

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:

Display List

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.




Dec
13

BlazeDS, Remoting e Messaging tornam-se OpenSource

A Adobe acaba de libertar o BlazeDS, o novo produto OpenSource (Licença LGPL v3) que corresponde à tecnologia JAVA server-side que dá suporte tanto para o Remoting assim como ao Messaging. Juntamente, foram libertadas as especificações do AMF3 para quem não possa utilizar directamente o BlazeDS (visto ser em JAVA).

Por outras palavras, agora é possível construír gratuítamente aplicações multi-utilizador com data push (!!). Exemplos? Desde um chat, até a uma aplicação de gestão, onde sempre que é introduzido determinado conteúdo na base de dados, todos os clientes ligados são notificados, e recebem no seu interface gráfico os novos dados sem terem que refrescar a “página”.

A Adobe está também empenhada em contribuir com a comunidade para permitir a implementação deste protocolo na maioria das plataformas server-side.

Enquanto que o Remoting já tinha sido implementado na maior parte das soluções server-side actuais, a disponibilização de messaging por protocolo HTTP (RTMP não foi libertado) irá permitir a aplicações fazerem data-push por um mecanismo de publishing/subscribe semelhante ao que o LifeCycle Data Services permite.
James Ward disponibilizou também o BlazeBench que permite analizar a diferença de performance entre AJAX JSON, Flex XML e Flex AMF3 usando BlazeDS.

O LCDS continuará a ser um produto comercial à parte que fornecerá as famosas API de data-management, sincronização offline, integração em portais, etc.

Foi disponibilizado um novo bugbase para este produto.

E para os fãs de AMFPHP (Retirado da press-release) :

“While there are open source projects and technologies that offer remoting and messaging to Adobe Flash® and Flex client applications, the contribution of these technologies and the AMF protocol specification represents a huge step forward for standardizing implementations across multiple platforms,” said Wade Arnold with AMFPHP. “Working with Adobe, we can create a common programming model that enables RIA developers to extend the reach of their applications across different server technologies in a compatible and consistent approach. The AMFPHP project is ecstatic to be able to work directly with Adobe in order to better leverage the AMF protocol in LAMP applications.”




Dec
13

Flex Builder 3 Beta 3,AIR Beta 3 e Flex 3

A Adobe, como prometido, lançou mais uma versão Beta do conjunto.

Estes encontram-se online aqui AIR , Flex Builder 3 e Flex 3 SDK .

É aconselhado vivamente a desinstalar as versões previamente instaladas.
Caso surjam problemas com o Flex Builder  (versão StandAlone) em que este  pareça não ter code highlighting, iniciem o programa com o comando -clean ( FlexBuilder3.exe -clean ).

top