anximxactdion

Upload: jerry-ross

Post on 14-Apr-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/27/2019 Anximxactdion

    1/35

    Animao noSilverlight

    Jos Antnio da Cunha

    IFRN

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    2/35

    Animao no Silverlight

    A plataforma Silverlight permite a adio de efeitos visuais dinmicos atravs daintroduo de animaes. Uma animao pode ser vista como uma iluso, criada pela

    passagem rpida de um conjunto de imagens, onde cada uma ligeiramente diferente

    da anterior.

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    3/35

    Animao

    Entendendo como a Animao funciona no Silverlight

    Muitas vezes, uma animao pensada como uma srie de quadros. Para executar

    a animao, esses quadros so apresentados um aps o outro.

    Essencialmente, uma animao uma maneira de modificar o valor de uma

    propriedade de dependncia durante um intervalo de tempo. Por exemplo, para criar

    um boto que aumenta e diminui, voc pode modificar sua propriedade Largura

    (Width).

    Para um objeto brilhar, voc pode alterar as propriedades do LinearGradientBrush

    que ele usa. O segredo para criar a animao correta determinar quais

    propriedades voc precisa modificar.

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    4/35

    Animao

    As regras de Animao

    Voc precisa estar ciente das seguintes regras fundamentais:

    14/12/2012 [email protected]

    Animao do Silverlight so baseadas no tempo. Voc define o

    estado inicial, o estado final, e a durao de sua animao. O Silverlight

    calcula a taxa de quadros.

    Animao age sobre propriedades. A animao do Silverlight pode

    fazer apenas uma coisa: modificar o valor de uma propriedade em um

    intervalo de tempo.

    Cada tipo de dado exige uma classe de animao diferente. Por

    exemplo, a propriedade Button.Width usa o tipo de dados double. Para

    anim-lo, voc usa a classe DoubleAnimation.

  • 7/27/2019 Anximxactdion

    5/35

    Animao

    Criando uma animao simples

    Criar uma animao um processo de mltiplas etapas. Voc precisa criar trs

    componentes distintos: um objeto para realizar a sua animao, um storyboard para

    gerenciar sua animao, e um manipulador de evento (um gatilho de eventos) para

    iniciar o seu storyboard.

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    6/35

    Animao

    A Classe de animao

    O Silverlight inclui dois tipos de classes de animao. Cada tipo de animao utiliza

    uma estratgia diferente para o valor de variveis :

    Linear interpolation(Interpolao linear): O valor da propriedade varia suavemente e

    continuamente ao longo da durao da animao. O Silverlight inclui trs classes:

    DoubleAnimation, PointAnimation e ColorAnimation.

    Key-frame animation: Os valores podem saltar repentinamente de um valor paraoutro, ou eles podem combinar saltos e perodos de interpolao linear. O silverlight

    inclui quatro classes: ColorAnimationUsingKeyFrames,

    DoubleAnimationUsingKeyFrames, PointAnimationUsingKeyFrames, e

    ObjectAnimationUsingKeyFrames.

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    7/35

    Animao

    As animaes so definidas usando marcao XAML. Por exemplo, veja o exemplo

    para criar uma DoubleAnimation.

    Esta animao dura 5 segundos (conforme indicado pela propriedade Durao, que

    tem um valor de tempo no formato horas: minutos: Segundos.FraoSegundos).

    Enquanto a animao est sendo executada, ela muda o valor-alvo 160-300. Esta

    mudana ocorre de forma suave e contnua, porque o DoubleAnimation usa a

    interpolao linear.

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    8/35

    Animao

    A classe Storyboard

    O Storyboard gere a linha do tempo da sua animao. Voc pode usar um storyboard

    para agrupar vrias animaes, e tambm tem a capacidade de controlar a

    reproduo da animao paus-la, interromp-la e alterar sua posio.

    Mas a caracterstica mais bsica fornecida pela classe Storyboard a suacapacidade de apontar para uma determinada propriedade de um elemento

    especfico usando as propriedades TargetProperty. Em outras palavras, o

    storyboard faz a ponte entre a animao e a propriedade que voc deseja animar.

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    9/35

    Animao

    Veja um exemplo que define como um storyboard aplica um DoubleAnimation para a

    propriedade Widthde um retngulo chamado rct.

  • 7/27/2019 Anximxactdion

    10/35

    Animao

    Iniciando uma animao com evento Trigger

  • 7/27/2019 Anximxactdion

    11/35

    Animao

    Iniciando uma animao com cdigo

  • 7/27/2019 Anximxactdion

    12/35

    Animao

    Configurando as propriedades da animao

    From valor inicial da animao. No exemplo anterior, a animao inicia com 160

    pixels.

    TO valor final da animao. No exemplo anterior, a animao inicia com 300

    pixels.

    By Ao invs de usar TO, voc pode usar a propriedade By. A propriedade By

    usada para criar uma animao que altera um valor por um valor definido, ao invs

    de um alvo especfico. Por exemplo, voc pode criar uma animao que amplia um

    boto por 10 pixels mais do que seu tamanho atual, como mostrado aqui:

    Duration A propriedade Duration, define o intervalo de tempo entre o momento do

    incio da animao e o final.

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    13/35

    Animao

    RepeatBehavior

    A propriedade RepeatBehavior permite que voc controle como uma animao se

    repete. Se voc deseja repetir um determinado nmero de vezes, indicar o nmero de

    vezes para repetir, seguido por um x. Por exemplo, essa animao se repete duas

    vezes:

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    14/35

    Animao

    Animaes simultneas

    A classe Storyboard tem a capacidade de manter mais do que uma animao. Melhor

    de tudo, essas animaes so gerenciados como um grupo. O que significa que

    comearam ao mesmo tempo.

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    15/35

  • 7/27/2019 Anximxactdion

    16/35

    Animao

    Easing Function

    Antes de considerar as funes easing, importante compreender quando uma

    funo de easing aplicada.

    Cada classe (funo) Easing deriva de EasingFunctionBase e herda uma

    propriedade nica chamada EasingMode. Esta propriedade tem trs valores

    possveis: EasingIn (o que significa que o efeito aplicado para o incio da

    animao), EaseOut (que significa que aplicada ao final), e EaseInOut (quesignifica que aplicada tanto no incio e no final).

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    17/35

    Animao

    Easing Function

    Em animaes que usam interpolao linear, o crescimento e o encolhimento

    acontecem de forma constante e mecnica. Para um efeito mais natural, voc pode

    adicionar a funo de atenuao. O exemplo a seguir adiciona uma funo de

    atenuao chamado ElasticEase. O resultado final que o boto se move como uma

    molas, oscilando para trs e para frente, sobre seu tamanho. O movimento elstico,

    diminue gradualmente, at parar depois de dez oscilaes. Vejam que quem controla

    as oscilaes a propriedade oscillation.

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    18/35

    Animao

    Easing Function

    A easing function requer muito menos trabalho do que outras abordagens, comoanimao baseada em quadros. Basta voc definir a propriedade EasingFunction de

    um objeto de animao.

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    19/35

    Animao

    Easing Function (Outras propriedades)

    EBackEase;

    lasticEase;

    BounceEase;

    CircleEase;

    CubicEase;

    QuadraticEase;

    QuarticEase;QuinticEase;

    SineEase;

    PowerEase;

    ExponentialEase.

    Veja os exemplos no site: http://tinyurl.com/animationeasing

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    20/35

    Animao

    TransformaoQuando voc usa as transformaes, no apenas altera os limites de um elemento.

    Em vez disso, voc pode alterar, inverter, distorcer, esticar, ampliar, encolher, ou

    rotacionar o elemento.

    private void Button_MouseEnter(object sender, MouseEventArgs e)

    {

    rotateStoryboard.Begin();

    }

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    21/35

    Animao

    Transformao

  • 7/27/2019 Anximxactdion

    22/35

    Animao

    Projees e Perspectivas

    Assim como voc pode animar e transformar, voc tambm pode animar projees

    em perspectiva, ou seja, a classe PlaneProjection permite simular uma superfcie

    plana, ttulo 3-D, etc. Por exemplo, imagine que voc tenha um grupo de elementos

    envolvidos em um controle Border, e que usa uma border PlaneProjection, como

    mostro aqui:

    Veja a animao com a projeo a seguir:

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    23/35

    Animao

    Projees e Perspectivas

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    24/35

    Animao

    Animaes Brushes

    Animaes Brushes uma outra tcnica comum em animaes em Silverlight, e tofcil como animar transformaes. Novamente, a tcnica consiste em modificar uma

    sub-propriedade que voc deseja mudar, usando o tipo de animao adequadas.

    No exemplo, o ponto central do gradiente radial deriva ao longo da elipse, dando-lhe

    um efeito tridimensional. Ao mesmo tempo, a cor exterior do gradiente muda de azul

    para preto

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    25/35

    Animao

    Animaes Brushes para o exemplo anterior

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    26/35

    Animao

    Animao Pixel Shaders

    Pixel shaders um recurso interessante, mas apenas ocasionalmente til. Mas

    combinado com animao, eles se tornam muito mais verstil. Voc pode us-los

    para criar efeitos impressionantes interatividade com o usurio (por exemplo,

    aumentando o brilho em um boto quando o usurio move o mouse sobre ele). O

    melhor de tudo, voc pode animar as propriedades de um pixel shader to facilmente

    como voc animar qualquer outra coisa.

    14/12/2012 [email protected]

  • 7/27/2019 Anximxactdion

    27/35

    Animao

    Animating Brushes

    14/12/2012 [email protected]

    A i

  • 7/27/2019 Anximxactdion

    28/35

    Animao

    Animao por key-Frame

    A animao key-Frame uma animao que feita de muitos pequenos segmentos.Cada segmento representa um valor inicial, final ou intermedirio na animao.

    Quando voc executa a animao, move-se suavemente de um valor para outro.

    Veja o exemplo usando PointAnimatio.

    14/12/2012 [email protected]

    A i

  • 7/27/2019 Anximxactdion

    29/35

    Animao

    O exemplo anterior usando key-Frame

    Esta animao inclui dois key-Frames. O primeiro define o valor dos pontos quando a

    animao comea. O segundo key-Frame define o valor final, que alcanado aps

    10 segundos. O objeto PointAnimationUsingKeyFrames executa uma interpolao

    linear para mover-se suavemente a partir do valor de 1 key-Frame para o segundo,

    assim como faz PointAnimation para ir de From pata To.

    14/12/2012 [email protected]

    A i

  • 7/27/2019 Anximxactdion

    30/35

    AnimaoExemplo usando key-Frame

    14/12/2012 [email protected]

    A i

  • 7/27/2019 Anximxactdion

    31/35

    Animao

    Discrete key-Frame

    A animao por key-Frame que voc viu nos exemplos anteriores usava key frameslinear. Como resultado, a transio entre os valores dos key-frame suave. Outra

    opo usar Discrete key frames. Neste caso, a animao feita sem interpolao.

    Quando o key time atingido, a propriedade muda abruptamente para o novo valor.

    14/12/2012 [email protected]

    A i

  • 7/27/2019 Anximxactdion

    32/35

    Animao

    Exemplo usando Discrete key-Frame

    14/12/2012 [email protected]

    A i

  • 7/27/2019 Anximxactdion

    33/35

    Animao

    Exemplo usando Easing key-Frame

    14/12/2012 [email protected]

    A i

  • 7/27/2019 Anximxactdion

    34/35

    Animao

    Spline key-Frame

    Como os Linear Key Frames, Spline key frames usam interpolao para moversuavemente de um valor chave para o outro. A diferena que cada spline key

    frame esporte uma propriedade KeySpline. Usando a propriedade KeySpline, voc

    define uma curva de Bzier cbica que influencia como modo de interpolao

    executada.

    14/12/2012 [email protected]

    A i

  • 7/27/2019 Anximxactdion

    35/35

    Animao

    Exemplo usando Spline key-Frame

    14/12/2012 35jose cunha@ifrn edu br