Como trabalhar com animação

Este tópico discute o Open XML SDK para a classe Office Animate e como ele se relaciona com o esquema PresentationML do Open XML File Format. Para obter mais informações sobre a estrutura geral das partes e elementos que compõem um documento PresentationML, consulte Estrutura de um documento PresentationML.

Animação em PresentationML

A ISO/IEC 29500

A seção Animation da estrutura PresentationML armazena o movimento e as informações relacionadas de objetos. Esse esquema é vagamente baseado na sintaxe e nos conceitos da SMIL (Synchronized Multimedia Integration Language), uma recomendação do W3C para descrever apresentações multimídia usando XML. O esquema descreve todas as animações, efeitos que residem em um slide e também a animação que ocorre ao passar de slide para slide (transição de slide). As animações em um slide são inerentemente baseadas no tempo e consistem em efeitos de animação em um objeto ou texto. No entanto, as transições de slide não seguem esse conceito e sempre aparecem antes de qualquer animação em um slide. Todos os elementos descritos neste esquema estão contidos no arquivo XML do slide. Mais especificamente, eles estão no <transition/> e no elemento, <timing/> conforme mostrado abaixo:

<p:sld>  
    <p:cSld> … </p:cSld>  
    <p:clrMapOvr> … </p:clrMapOvr>  
    <p:transition> … </p:transition>  
    <p:timing> … </p:timing>  
</p:sld>

A animação consiste em vários comportamentos, o mais básico dos quais é o comportamento Animar, representado pelo <anim/> elemento. A ISO /IEC 29500 descreve o elemento Open XML PresentationML <anim/> usado para representar o comportamento básico de animação em um documento PresentationML da seguinte maneira:

Esse elemento é um elemento de animação genérico que requer pouca ou nenhuma compreensão semântica do atributo que está sendo animado. Ele pode animar o texto dentro de uma forma ou até mesmo a própria forma. [Exemplo: considere tentar enfatizar o texto dentro de uma forma alterando o tamanho de sua fonte em 150%. O <anim/> elemento deve ser usado da seguinte maneira:

<p:anim to="1.5" calcmode="lin" valueType="num">  
    <p:cBhvr override="childStyle">  
        <p:cTn id="1" dur="2000" fill="hold">  
        <p:tgtEl>  
            <p:spTgt spid="1">  
                <p:txEl>  
                    <p:charRg st="1" end="4">  
                </p:txEl>  
            </p:spTgt>  
        </p:tgtEl>  
        <p:attrNameLst>  
            <p:attrName>style.fontSize</p:attrName>  
        </p:attrNameLst>  
    </p:cBhvr>  
</p:anim>

A tabela a seguir lista os elementos filho do <anim/> elemento usado ao trabalhar com animação e as classes Open XML SDK que correspondem a eles.

Elemento PresentationML Classe Open XML SDK
<cBhvr/> CommonBehavior
<tavLst/> TimeAnimateValueList

A tabela a seguir da especificação ISO/IEC 29500 descreve os atributos do <anim/> elemento.

Atributos Description
por Esse atributo especifica um valor de deslocamento relativo para a animação em relação à sua posição antes do início da animação. Os valores possíveis para esse atributo são definidos pelo tipo de dados de cadeia de caracteres do esquema XML do W3C.
calcmode Esse atributo especifica o modo de interpolação para a animação. Os valores possíveis para esse atributo são definidos pelo tipo ST_TLAnimateBehaviorCalcMode simples (§19.7.20).
from Esse atributo especifica o valor inicial da animação. Os valores possíveis para esse atributo são definidos pelo tipo de dados de cadeia de caracteres do esquema XML do W3C.
para Esse atributo especifica o valor final da animação como uma porcentagem. Os valores possíveis para esse atributo são definidos pelo tipo de dados de cadeia de caracteres do esquema XML do W3C.
valueType Esse atributo especifica o tipo de valor da propriedade. Os valores possíveis para esse atributo são definidos pelo tipo ST_TLAnimateBehaviorValueType simples (§19.7.21).

Open XML SDK Classe Animate

A classe OXML SDK Animate representa o <anim/> elemento definido no esquema Open XML File Format para documentos PresentationML. Use a Animate classe para manipular elementos individuais <anim/> em um documento PresentationML.

As classes que representam elementos filho do <anim/> elemento e que, portanto, são comumente associados à Animate classe são mostradas na lista a seguir.

Classe CommonBehavior

A CommonBehavior classe corresponde ao <cBhvr/> elemento. As seguintes informações da especificação ISO/IEC 29500 introduzem o <cBhvr/>elemento:

Esse elemento descreve os comportamentos comuns de animações.

Tente enfatizar o texto dentro de uma forma alterando o tamanho da fonte. O <anim/> elemento deve ser usado da seguinte maneira:

<p:anim to="1.5" calcmode="lin" valueType="num">  
    <p:cBhvr override="childStyle">  
        <p:cTn id="6" dur="2000" fill="hold">  
        <p:tgtEl>  
            <p:spTgt spid="3">  
                <p:txEl>  
                   <p:charRg st="4294967295" end="4294967295"/>  
                </p:txEl>  
           </p:spTgt>  
        </p:tgtEl>  
        <p:attrNameLst>  
            <p:attrName>style.fontSize</p:attrName>  
        </p:attrNameLst>  
    </p:cBhvr>  
</p:anim>

Classe TimeAnimateValueList

A TimeAnimateValueList classe corresponde ao <tavLst/> elemento. As seguintes informações da especificação ISO/IEC 29500 introduzem o <tavLst/> elemento:

Esse elemento especifica uma lista de elementos de valor animados no tempo.

Exemplo: considere uma forma com uma animação "fly-in". O <tav/> elemento deve ser usado da seguinte maneira:

<p:anim calcmode="lin" valueType="num">  
    <p:cBhvr additive="base"> … </p:cBhvr>  
    <p:tavLst>  
        <p:tav tm="0">  
            <p:val>  
                <p:strVal val="1+#ppt_h/2"/>  
            </p:val>  
        </p:tav>  
        <p:tav tm="100000">  
            <p:val>  
                <p:strVal val="#ppt_y"/>  
            </p:val>  
        </p:tav>  
    </p:tavLst>  
</p:anim>

Trabalho com a classe Animate

A Animate classe, que representa o <anim/> elemento, portanto, também está associada a outras classes que representam os elementos filho do elemento, incluindo a CommonBehavior classe, que descreve comportamentos comuns de <anim/> animação, e a TimeAnimateValueList classe, que especifica uma lista de elementos de valor animados por tempo, conforme mostrado no código XML anterior. Outras classes associadas à Animate classe são a classe, que especifica informações Timing de tempo para todas as animações no slide, e a TargetElement classe, que especifica os elementos filho de destino aos quais os efeitos de animação são aplicados.

Confira também

Sobre o Open XML SDK para OfficeComo criar uma apresentação fornecendo um nome de arquivoComo inserir um novo slide em uma apresentaçãoComo excluir um slide de uma apresentaçãoTutorial: Aplicar um tema a uma apresentação