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