DevMedia
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Este é um post disponível para assinantes MVP
###
ClubeDelphi 137 - Índice

FireMonkey: Animações em aplicações comerciais - Revista ClubeDelphi 137

Este artigo demonstra como utilizar as animações visuais da nova ferramenta do Delphi XE 2, a FireMonkey, apresentando também uma idéia de como empregá-la em aplicações comerciais.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você poderia comentar o que não lhe agradou?

Confirmo meu voto negativo

O mercado de desenvolvimento de software tem ganhado várias ferramentas e tecnologias para o projeto de aplicações mais ricas em interface e interatividade. É evidente que com a popularização do recurso TouchScreen e da atual ascensão dos dispositivos portáteis como os Smartphones, tais tecnologias se tornem cada vez mais presentes no cotidiano dos desenvolvedores. Até certo tempo atrás, o programador Delphi que desejava ou necessitava desenvolver aplicações com interfaces mais ricas ou personalizadas para o ambiente Windows, precisava utilizar componentes de terceiros ou desenvolver seus próprios códigos, uma vez que a VCL e o próprio ambiente nativo da ferramenta não apresentavam tantos recursos para a manipulação da interface gráfica dos aplicativos. Com o surgimento da versão XE 2 do Delphi novas tecnologias foram incorporadas à ferramenta, principalmente no quesito interface.

 

FireMonkey

O FireMonkey (FMX), que é uma nova plataforma para aplicações, tem atraído a atenção dos desenvolvedores. Ela é uma biblioteca de componentes gráficos que utiliza a GPU (Unidade de Processamento Gráfico) e também a CPU (Unidade Central de Processamento) dos computadores ou dos dispositivos portáteis, uma vez que é multi-plataforma, possibilitando o desenvolvimento de aplicações HD 3D ricas visualmente e de uma maneira rápida, com vários efeitos visuais. Ela possui uma camada de abstração de recursos, um motor GUI que cuida geração de caixas de texto, botões, janelas e demais componentes, o que possibilita sua portabilidade para outros ambientes, uma vez que os mesmos ficam independentes do Sistema Operacional. Oferece suporte ao desenvolvimento de gráficos em 2D ou 3D, também utilizando formas primitivas, possuindo um motor de vetores poderoso. Também é constituída por um motor destinado a utilização de temas pré-definidos ou criados pelo próprio usuário através de um Editor. Suporta animações, que por sua vez, são calculadas em segundo plano através de uma Thread, apresentando um consumo mínimo de CPU e correção automática da taxa de frames (quadros), permitindo também a utilização e manipulação de vários tipos de imagens como Bitmap, JPEG, PNG, GIF, etc.

O FireMonkey e a VCL não podem ser utilizados em conjunto num mesmo projeto pois são incompatíveis. Vale a pena lembrar também que a VCL é uma biblioteca de componentes que é suportada apenas no ambiente Windows. Atualmente o FireMonkey é compatível com o ambiente Windows 32 ou 64 bits (a partir do XP SP2), Mac OS X e iOS, porém deverá oferecer suporte a outras plataformas futuramente.

O desenvolvimento 3D com o Delphi foi enfatizado com o FireMonkey. Utilizando um objeto do tipo TForm3D ou TViewPort3D, por exemplo, é possível adicionar vários objetos 3D primitivos, como um Cubo, e criar câmeras, efeitos de iluminação e animação na aplicação, como rotação e escala, bem como a utilização de materiais para as superfícies dos objetos. Também é importante evidenciar que ao integrar animações com aplicações comerciais, é uma boa prática levar em consideração o tempo de execução da animação, não utilizando efeitos demorados, afinal além de uma aparência agradável o usuário deseja ter um sistema que responda o mais rápido possível às suas requisições.

Entretanto o FireMonkey não é apenas uma plataforma destinada ao desenvolvimento de uma aplicação gráfica ou cheia de efeitos e animações, mas sim uma solução completa para aplicativos comerciais. Ela suporta o acesso aos bancos de dados através das ferramentas DataSnap e dbExpress, podendo o desenvolvedor utilizar recursos de LiveBinding que utiliza expressões para a interligação dos objetos através das suas propriedades.

 Classes FireMonkey de animações

A plataforma FireMonkey disponibiliza recursos para que o desenvolvedor possa criar animações em sua aplicação como descrito anteriormente. Vale a pena evidenciar que animações podem ser obtidas através da alteração das propriedades dos componentes da aplicação com relação ao tempo. Tais recursos podem ser inicializados de forma automática ou manual através de um evento por exemplo, assim como reiniciados ou efetuados de maneira inversa.

Quanto aos tipos de animações disponibilizados por esta plataforma, são divididos em três categorias: interpolações originadas por dois valores (a partir de um valor inicial até um valor final), interpolações originadas de vários valores e sem interpolação, neste último caso como se fosse uma apresentação de slides baseada em uma lista de imagens. Em animações gráficas, interpolação é o termo utilizado para definir a criação automática de uma sequência de novos quadros tendo como base determinados valores, como um valor inicial e um valor final onde cada quadro gerado depende do quadro anterior até que atinja o valor estabelecido como final, levando também em consideração um determinado tempo. Sendo assim, se a animação é uma rotação e são definidos os valores 1 (inicial)  e 5 (final), os quadros 2, 3 e 4 serão gerados de uma maneira automática, evidentemente de acordo com o tempo definido. Tais interpolações desta plataforma são semelhantes às utilizadas pelo Flash, uma ferramenta mais voltada para o desenvolvimento de efeitos para a Web. A Tabela 1 descreve os tipos de animações com interpolação originada por dois valores.

As animações podem ser anexadas a um objeto para que o mesmo seja animado assim como a qualquer subcomponente. Através do ObjectInspector as propriedades de animação são apresentadas através de um ícone de filme e, sempre que um objeto de animação é adicionado pelo desenvolvedor, a propriedade PropertyName do mesmo deve ser definida manualmente. Para que uma animação seja executada automaticamente na inicialização da aplicação, basta definir sua propriedade Enabled para True em tempo de desenvolvimento, e evidentemente, tal propriedade pode ser alterada para Verdadeiro em tempo de execução para que a mesma seja iniciada em um determinado momento da aplicação, através de um clique, por exemplo, bem como posteriormente definida como False para ser parada.

 

TFloatAnimation

O objeto TFloatAnimation da Firemonkey é utilizado para criar uma animação a partir da alteração do valor de uma determinada propriedade de um componente visual, onde tal propriedade deve ser informada. Também são informados o tipo de alteração e a duração da mesma.

Quando um objeto do tipo TFloatAnimation é utilizado para uma animação, se a propriedade StartFromCurrent é definida como True, permite que a animação seja iniciada a partir da posição atual do objeto e automaticamente desconsidera o valor presente em StartValue, utilizada para definir um valor fixo para o início. A propriedade StopValue pode ser preenchida com um valor para definir o momento que a animação será encerrada, se a propriedade Inverse estiver definida como False. Entretanto, uma animação também pode ser iniciada através de uma Trigger (gatilho), em outras palavras, quando o usuário interage com a aplicação através do mouse ou teclado, fazendo com que uma animação possa ser executada enquanto o mesmo mantém a interação, ou quando determinada propriedade esta ativada ou desativada. As propriedades fornecidas para serem utilizadas com triggers são: IsMouseOver, IsDragOver, IsFocused e IsVisible. Alguns controles possuem outras propriedades como IsPressed, IsChecked, IsSelected, IsExpanded e IsActive. Tais propriedades possuem um valor do tipo boolean para que o desenvolvedor possa testar seus valores e definir qual será a animação executada. Tais valores podem ser definidos na propriedade Trigger, para começar a animação, e TriggerInverse, para que a animação seja executada de maneira invertida.

 Alguns componentes visuais do FireMonkey como o TButton, já possuem um procedimento que também permite a criação de uma animação. Para tanto basta utilizar AnimateFloat(). Neste caso o objeto TFloatAnimation é instanciado pelo procedimento e liberado da memória após o término da animação. Sua estrutura é a seguinte: [Objeto].AnimateFloat([Nome da Propriedade],[Novo Valor],[Duração], TAnimationType.[Valor], TinterpolationType.[Valor]). Um exemplo da sua utilização seria: Button1.AnimateFloat(‘Roation.Z’, 500, 1, TAnimationType.atIn, TinterpolationType.itLinear), para obter um efeito de rotação no eixo Z. Entretanto, os parâmetros TAnimationType e TInterpolationType podem ser omitidos pelo desenvolvedor se desejado.

"

A exibição deste artigo foi interrompida

Este post está disponível para assinantes MVP.



É Professor da Fatec/TQ, atuando também com desenvolvimento Delphi, Java, Web e Android em Monte Alto/SP. Formado em Processamento de Dados, começou a desenvolver com Delphi em 2003.

O que você achou deste post?
Publicidade
Serviços

Mais posts