• 2008-12-29

    解密PowerPoint动画之动画类型篇 - [PPT动画探索]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/pptaddins-logs/33075378.html

    由前面的知识我们知道,PowerPoint动画实际上是一个个应用于对象上的效果,而每个效果是由一个或多个动作组合而成的。PowerPoint为我们提供了下面几种动作: 

    • 颜色动作:改变对象的颜色
    • 旋转动作:对象旋转指定角度
    • 缩放动作:对象放大或缩小
    • 设置动作:设置对象的某个属性值
    • 属性动作:对对象的属性值进行复杂设置
    • 滤镜动作:设置对象应用PowerPoint内置的滤镜效果
    • 路径动作:对象沿指定的轨迹进行运动
    • 命令动作:设置媒体对象的动作

    每个动作都提供属性,对于不同的属性类型,会产生不同的动画类型,因此可以把PowerPoint动画分成三种类型:From/To/By 动画和关键帧(或动画点)动画,滤镜动画

    类别 说明
    From/To/By 动画

     

    在起始值和结束值之间进行动画处理:
    u  
    若要指定起始值,请设置动画的From属性。
    u  若要指定结束值,请设置动画的To属性。
    u  若要指定相对于起始值的结束值,请设置动画的 By属性(而不是 To 属性)。
    关键帧动画

     

    关键帧动画的功能比 From/To/By 动画的功能更强大,因为您可以指定任意多个目标值,甚至可以控制它们的插值方法。
    滤镜动画 使用PowerPoint内置的滤镜效果。

     

    (1)From/To/By 动画篇

    From/To/By 动画创建两个值之间的过渡,如:

    clip_image002

    由上图中我们可以看出,Property的值是X坐标,表示对象的X坐标将会发生变化,怎么变化?这将由From和To来决定,From的值为0.5,表示对象的X坐标将从屏幕宽度的50%处(即屏幕中心)开始变化,To的值为(#ppt_x),它是一个表达式,表示对象的原始X坐标。简而言之,对象从屏幕宽度的50%处沿X轴开始移动,到它原来的位置结束。

    大部分的动作都会提供By/From/To属性,详细情况在下表中列出:

    动作 By/From/To 属性备注
    颜色 ByFromTo

     

    旋转 ByFromTo

     

    缩放 ByXByYFromXFromYToXToY

     

    路径 ByXByYFromXFromYToXToY

     

    设置 To 其值取决于Property
    属性 FromTo 其值取决于Property

     

    (2)关键帧动画

    与From/To/By 动画类似,关键帧动画以动画形式显示目标属性的值。它通过Time创建其目标值之间的过渡。但是,From/To/By 动画创建两个值之间的过渡,而关键帧动画可以创建任意数量的目标值之间的过渡。

    与 From/To/By 动画不同,关键帧动画没有设置其目标值所需的 From、To 或 By 属性。而是使用value指定其目标值,动画运行时,将在您指定的帧之间过渡。

    PowerPoint关键帧动画支持多个目标值,并且还支持多个内插方法。动画的内插方法定义了从某个值过渡到下一个值的方式。有三种内插类型:离散、线性和样条。不过,PowerPoint动画内插方法并没有可供操作的对象模型,它是隐藏的。

    关键帧的主要用途是指定Time 和目标Value。每一个关键帧类型都提供了这两个属性。

    • Value 属性指定关键帧的目标值。
    • Time 属性指定到达关键帧的 Value 的时间(在动画的 Duration 之内)。Time可以是 0 和 1 之间任何的浮点值,代表相对于整个日程表从 0% 到 100% 的某个百分比。例如,值 0.2 对应于整个日程表持续时间从左向右 20% 处的时间位置。

    关键帧动画开始后,它会按照由其Time 属性定义的顺序来循环访问其关键帧。

    如果时间 0 上没有关键帧,动画将在目标属性当前值和第一个关键帧的Value 之间创建一个过渡;否则,动画的输出值将成为第一个关键帧的值。

    动画会使用由第二个关键帧指定的内插方法来创建第一个和第二个关键帧的 Value 之间的过渡。过渡起始自第一个关键帧的Time,在到达第二个关键帧的Time 时结束。

    动画将继续,并创建每个后续关键帧及其前面的关键帧之间的过渡。

    最终,动画过渡到关键时间最大(等于或小于动作或效果的Duration)的关键帧值。

    clip_image003

    由上图中我们可以看出该动作包含了四个关键帧,其值设置如下图:

    clip_image004

    关键帧 Time value
    1 0.0 90
    2 0.8 90
    3 0.8 90
    4 1.0 0

    我们假设这个动作的动画时间为1秒,0秒时对象旋转90度,0.8秒时保持旋转90度不变,然后从0.8秒开始逐渐旋转为0度。

    在PowerPoint中,只有属性动作才支持关键帧动画。

    (3) 滤镜动画

    PowerPoint内置了18种转换效果,这些效果由FilterEffect对象控制,我把它们称为滤镜动画。关于滤镜动画的详细信息,我会在下面的章节中继续分析。

    分享到:

    评论

  • msoAnimDirection...是动画方向。不知是什么控制颜色渐变方式。PPT VBA真是难啊,不像Excel那么成熟,实在不行还可以录制宏。PPT 2007已经没录制器了,即便2003有录制器,也无法录制动画。。。
    回复hxhgxy说:
    msoAnimDirectionClockwise,msoAnimDirectionCounterclockwise,msoAnimDirectionCycleClockwise,msoAnimDirectionCycleCounterclockwise这几个常数用来控制颜色的渐变方向,只是msoAnimEffectCustom类型的动画不能访问,不过如果安装了VS2005或VS2008的话,可以通“包”来访问指定幻灯片中的颜色动画中的“direction"属性,这样就可以改变msoAnimEffectCustom类型动画的渐变方式。
    2009-08-04 20:47:41
  • "不过,PowerPoint动画内插方法并没有可供操作的对象模型,它是隐藏的。"
    如何控制内插方式?正如我在另一篇博客里留言所说,你做的滚动条动画是浅橙色到橙色线性渐变,而我的代码生成的则中间自动插入各种颜色。你可能使用了msoAnimTypeSet,但究竟是如何做到的,我还没弄明白。望指点一下,谢谢。
    回复hxhgxy说:
    在PPT中去准确地控制内插,是一件非常艰难的事情。
    它是一个叫做“方向”的东西来掌控的,本来想继续深入下去,后来觉得没什么用,所以就停止了,现在我也有点一知半解。
    我记得在PPT中有一个枚举:MsoAnimDirection,控制内插好像就是这个东西。具体情况可以上OpenOffice的官方网站,那里面有一些相关的源码,对深入了解PPT非常有帮助。
    2009-08-03 21:52:33