如何在PowerPoint里设置动画路径

posted in: 办公技巧 | 0

[遇见君] 这里推荐下面刘瑞祥老师本人的微信号,欢迎各位老师朋友多多关注支持!

PowerPoint 里的路径动画,往往不容易精确设定,这对我们制作数学、物理类动画是个挑战。要精确设定动画的路径,一种可能的方法就是编程。下面是一段相应的代码,要正常运行需要在幻灯片的第一页里至少有一个可以移动的对象,比如一个图形。

Sub AddMotionPath()
    Dim shp As Shape, eff As Effect , aniMotion As AnimationBehavior
    Set shp = ActivePresentation.Slides(1).Shapes(1)
    Set eff = ActivePresentation.Slides(1).TimeLine.MainSequence. AddEffect( _
       Shape:=shp,effectId:=msoAnimEffectCustom, Trigger:=msoAnimTriggerOnPageClick)
    Set aniMotion = eff.Behaviors.Add(msoAnimTypeMotion)
    aniMotion.MotionEffect.Path = "m 0 0 c 0.1 0 0.2 0.2 0.1 0.4 Z L 0.5 0 E"
    End Sub以上先引用了第一页幻灯片里的这个对象,即给 shp 对象赋值,然后再给 eff 对象赋值,注意 AddEffect 后面的三个参数了吗?第一个参数是效果所针对的对象,第二个参数是动画类别为自定义,第三个参数是指定单击鼠标时发生动画。这之后又是一个添加行为的语句。然后是本文最关键的设置动画路径即 Path 参数的设置。要改变动画路径,只需要改变这里。

以上先引用了第一页幻灯片里的这个对象,即给shp对象赋值,然后再给eff对象赋值,注意AddEffect后面的三个参数了吗?第一个参数是效果所针对的对象,第二个参数是动画类别为自定义,第三个参数是指定单击鼠标时发生动画,这种“变量名:=值”的写法不限于给给对象变量赋值,而且便于维护代码。这之后又是一个添加行为的语句。然后是本文最关键的设置动画路径即Path参数的设置。要改变动画路径,只需要改变这里。

下面解释一下路径字符串的含义:

● M 表示瞬间移动到某个位置,后面跟着一个横纵坐标,注意 M 和两个坐标之间都用半角空格隔开(后同);

● L 表示直线路径,后面跟着终点坐标;

● C 表示三次贝塞尔曲线,后面跟着第一控制点坐标、第二控制点坐标和终点坐标,这三个坐标顺序是x₁y₁x₂ y₂ x₃ y₃;

● Z 表示回到开始位置(闭合),无参数;

● E 表示终止,无参数。

这里坐标的含义是,横纵坐标分别以幻灯片页面的长宽为 1,以向右和向下为正。比如要使对象向右平移幻灯片宽度的一半,则路径是"M 0 0 L 0.5 0"。另外,按照一些资料的说明,以上字母大写表示相对位置,小写表示绝对位置。所谓相对位置,就是相对于物体上一条路径终点的坐标,绝对位置是相对于幻灯片左上角的坐标。大家可以尝试以下两个路径,也可以尝试大小写的其它组合:

● "M 0.1 0 L 0.5 0"

● "m 0.1 0 l 0.5 0"

为了更好地观察效果,建议大家用直线把幻灯片页面横向等分成 10 份,然后把要移动的物体放在第二条线上(最好先清空页码里全部对象,然后画小球,最后画竖线,这样小球就是页面里第一个对象了,不至于还需要调整代码中 Shapes 后面的序号)。

路径动画制作步骤_路径动画有什么作用_ppt 动画 动作路径

以上代码在执行过程有个问题:要移动的对象开始时并没有出现,是在单击鼠标后才突然出现并移动的。这往往和我们的需求不符。解决这个问题的方法是:再设计一个让该对象“出现”的动画,并把这个“出现”动画设置为进入这一页时同时出现。另外用代码设置路径动画是无法在设计时显示路径的,这一点也和我们通常设置路径动画的方法不同。

路径动画制作步骤_路径动画有什么作用_ppt 动画 动作路径

路径动画制作步骤_路径动画有什么作用_ppt 动画 动作路径

以上代码运行一次即可设置好动画,然后就可以删掉语句,或者直接把文件保存成 pptx、ppt 格式,而不用保存成 pptm 格式了。另外本文只涉及动画路径的编程,没有关于动画时间等等的编程。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注