使用动画

本主题讨论 Open XML SDK for Office Animate 类,以及它与 Open XML 文件格式 PresentationML 架构的关系。 有关构成 PresentationML 文档的部件和元素的整体结构的详细信息,请参阅 PresentationML 文档的结构

PresentationML 中的动画

ISO/IEC 29500(该链接可能指向英文页面) 规范对 Open XML PresentationML 框架中的"动画"部分进行了如下描述:

PresentationML 框架中的"动画"部分存储对象的移动和相关信息。 此框架大致基于同步多媒体整合语言 (SMIL) 中的语法和概念,SMIL 是使用 XML 描述多媒体演示文稿的 W3C 建议。 该架构描述幻灯片中的所有动画效果以及在幻灯片之间进行切换(幻灯片切换)时出现的动画。 幻灯片中的动画本身是基于时间的,并由对象或文本中的动画效果组成。 但是,幻灯片切换不遵循此概念,而是始终出现在幻灯片中的任何动画之前。 幻灯片 XML 文件包含此架构中描述的所有元素。 更具体地说,它们位于如下所示的 <transition/><timing/> 元素中:

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

动画由多个行为组成,其中最基本的行为是由 元素表示的 <anim/> Animate 行为。 ISO/IEC 29500 规范描述了用于在 PresentationML <anim/> 文档中表示基本动画行为的 Open XML PresentationML 元素,如下所示:

此元素是一个泛型动画元素,几乎不需要对要进行动画处理的属性进行语义理解或无需任何语义理解。 它可以对形状内的文本进行动画处理,甚至可以对形状本身进行动画处理。[示例:考虑尝试通过将形状的字体大小更改为 150%来强调形状中的文本。 应按如下所述使用 <anim/> 元素:

<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>

下表列出了使用动画时使用的元素的 <anim/> 子元素以及与之对应的 Open XML SDK 类。

PresentationML 元素 Open XML SDK 类
<cBhvr/> CommonBehavior
<tavLst/> TimeAnimateValueList

ISO/IEC 29500(该链接可能指向英文页面) 规范中的以下表介绍了 <anim/> 元素。

属性 说明
此属性指定动画相对于动画开始之前的位置的相对偏移值。此属性的可能值由 W3C XML 架构字符串数据类型定义。
calcmode 此属性指定动画的内插模式。此属性的可能值由ST_TLAnimateBehaviorCalcMode简单类型 (§19.7.20) 定义。
起始数量 此属性指定动画的起始值。此属性的可能值由 W3C XML 架构字符串数据类型定义。
更改为 此属性将动画的结束值指定为百分比。此属性的可能值由 W3C XML 架构字符串数据类型定义。
valueType 此属性指定属性值的类型。此属性的可能值由ST_TLAnimateBehaviorValueType简单类型 (§19.7.21) 定义。

Open XML SDK Animate 类

OXML SDK Animate 类表示 <anim/> 在 PresentationML 文档的 Open XML 文件格式架构中定义的元素。 Animate使用 类可操作 PresentationML 文档中的各个<anim/>元素。

以下列表中显示了表示 元素的 <anim/> 子元素并且因此通常与 Animate 类关联的类。

CommonBehavior 类

CommonBehavior 对应于 <cBhvr/> 元素。 ISO/IEC 29500 规范中的以下信息介绍了 元素<cBhvr/>

此元素描述动画的常见行为。

请考虑通过更改形状的字体大小来强调形状中的文本。 应按如下所述使用 <anim/> 元素:

<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>

TimeAnimateValueList 类

TimeAnimateValueList 对应于 <tavLst/> 元素。 ISO/IEC 29500 规范中的以下信息介绍了 元素<tavLst/>

此元素指定时间动态值元素的列表。

示例:考虑具有“飞入”动画的形状。 应按如下所述使用 <tav/> 元素:

<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>

处理 Animate 类

Animate因此,表示 元素的<anim/>类也与其他类相关联,这些类表示元素的<anim/>子元素,包括CommonBehavior描述常见动画行为的 类和TimeAnimateValueList类(指定时间动画值元素的列表),如前面的 XML 代码所示。 与 Animate 类关联的其他类包括 Timing 类(它指定幻灯片上所有动画的计时信息)和 TargetElement 类(指定动画效果应用到的目标子元素)。

另请参阅

关于 Open XML SDK for Office如何:通过提供文件名创建演示文稿如何:将新幻灯片插入演示文稿如何:从演示文稿中删除幻灯片如何:将主题应用于演示文稿