• 2010-09-18

    在放映状态下控制动画的播放(适用2007、2010) - [PPT动画探索]

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

         从PowerPoint2007开始,为了满足用户在放映期间对动画的控制,MS在SlideShowView对象中提供了几个新的特性,可以让我们简单地访问幻灯片上时间线的动画序列,诸如:简单的跳转,这样我们就可以忽略某些动画,跳转到指定的位置开始播放动画,这在某些特定的情况下是有作用的。但是它实在是太过于简单了,也许是MS在为后续的版本做些有益的尝试,希望这样的尝试会为将来更复杂的控制注入活力。

         下面是SlideShowView对象在2010和2003中的对比,从图表中我们可以清晰地看到这些变化。

    image

         上图中红色部分是新加入的特性,其中GetClickCount、GetClickIndex、GotoClick这三个方法用于控制序列中的动画。下面给出了它们的定义和示例:

         (1) Function GetClickCount() As Long

         返回为幻灯片定义的鼠标单击次数。如果幻灯片包含动画,则 GetClickCount 方法返回用户换到下一张幻灯片之前所需的鼠标单击次数。

    示例:
    Private Sub ClickSum()
        MsgBox SlideShowWindows(1).View.GetClickCount
    End Sub

    image

         如上图,ClickSum会返回4,表示此幻灯片中定义了4次单击鼠标。

         (2) Function GetClickIndex() As Long

         返回启动当前正在幻灯片上播放或者刚刚已经播放完的动画的当前鼠标单击的索引号。使用 GetClickCount 方法可返回为幻灯片定义的鼠标单击次数。如果幻灯片不包含任何动画或者用户尚未换到某个动画,则 GetClickIndex 方法返回 0。如果幻灯片包含自动播放的动画并且该用户移到上一页,则 GetClickIndex 方法返回msoClickStateBeforeAutomaticAnimations。

    示例:
    Private Sub CurrClickIndex()
        Msgbox SlideShowWindows(1).View.GetClickIndex
    End Sub

         如上图,如果用户单击了两次鼠标,则表明已播放了两个动画,这时GetClickIndex将返回2。

         (3) Sub GotoClick(Index As Long)
         播放幻灯片上与指定的鼠标单击关联的动画以及随后的任何动画。使用 GetClickIndex 方法可返回启动当前正在幻灯片上播放或刚刚已经播放完的动画的当前鼠标单击的索引号。指定 Index 的值为 0 将播放起始于任意自动播放的动画之前的位置的动画。指定 Index 的值为 msoClickStateBeforeAutomaticAnimations 将移动到任意自动播放的动画之前的位置,然后暂停。指定 Index 的值为 msoClickStateAfterAllAnimations 将移动到所有动画之后的位置。

    示例:

    Private Sub GotoPos()

        Call SlideShowWindows(1).View.GotoClick(3)

    End Sub

    image

         这时,将忽略前面3个动画,从第4个动画开始播放,这样就实现了动画的跳转。

         附录:

         MsoClickState枚举
         用于指定幻灯片中要定位到的点的常量,这些常量相对于该幻灯片中包含的动画,会传递给 SlideShowView 对象的 GotoClick 方法,并由该对象的 GetClickIndex 方法返回。

    msoClickStateAfterAllAnimations -2 在所有动画之后。
    msoClickStateBeforeAutomaticAnimations -1 在自动动画之前。

     

     

     

    分享到:

    评论

  • 如果动画不是通过单击触发,能否控制?
  • 尽管这些新特性对控制动画的播放过于简单,但相比2003,也足以令人兴奋一下。