Compartilhar via


Como trabalhar com animação

Este tópico discute a classe Open XML SDK for Office Animate e como ela se relaciona com o esquema Open XML File Format PresentationML. 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 especificação ISO/IEC 29500 descreve a seção Animação da estrutura Open XML PresentationML da seguinte maneira:

A seção Animação da estrutura PresentationML armazena a movimentação e as informações relacionadas dos objetos. Esse esquema é vagamente baseado na sintaxe e nos conceitos da SMIL (Linguagem de Integração Multimídia Sincronizada), uma Recomendação W3C para descrever apresentações multimídia usando XML. O esquema descreve todos os efeitos de animações que residem em um slide e também a animação que ocorre ao ir de slide para slide (transição de slide). As animações em um slide são inerentemente baseadas em tempo e consistem em efeitos de animação em um objeto ou texto. As transições de slide, no entanto, 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 na <transição> e no <elemento de tempo> , 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, sendo o mais básico o comportamento Animar, representado pelo <elemento anim> . A especificação ISO/IEC 29500 descreve o elemento anim> Open XML PresentationML <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 na própria forma. [Exemplo: considere tentar enfatizar o texto dentro de uma forma alterando o tamanho de sua fonte em 150%. O <elemento anim> 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 <elemento anim> usado ao trabalhar com animação e as classes de SDK Open XML que correspondem a elas.

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

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

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 W3C XML Schema.
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 W3C XML Schema.
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 W3C XML Schema.
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).

Abrir classe de animação do SDK XML

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

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

Classe CommonBehavior

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

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

Considere tentar enfatizar o texto dentro de uma forma alterando o tamanho de sua fonte. O <elemento anim> 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 classe TimeAnimateValueList corresponde ao <elemento tavLst> . As seguintes informações da especificação ISO/IEC 29500 introduzem o <elemento tavLst> :

Esse elemento especifica uma lista de elementos de valor animado do tempo.

Exemplo: considere uma forma com uma animação "fly-in". O <elemento tav> 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>

Trabalhando com a classe Animar

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

Confira também

Sobre o SDK Open XML 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çãoComo aplicar um tema a uma apresentação