PowerPoint中显示时间的方法

2009-07-27 05:09仇壮丽
中国教育信息化·基础教育 2009年6期
关键词:FLASH动画

仇壮丽

摘 要:本文总结了三种在播放PowerPoint课件时显示系统时间的简单方法:利用第三方时钟软件嵌入Flash动画,通过VBA调用Windows API函数显示时间。

关键词:PowerPoint;Flash动画;时间显示;VBA

中图分类号:G434文献标识码:B 文章编号:1673-8454(2009)12-0066-03

引言

PowerPoint是教学过程中使用得最多的多媒体软件,由于它使用简单,容易上手,得到了绝大多数教师的青睐。在用PowerPoint进行教学的过程中,很多教师提出了播放时显示系统时间,以便掌握教学进度的要求,由于PowerPoint并不提供相应的功能,笔者通过探索,总结出三种简单、可行的方法。

一、利用独立的第三方时钟软件

要在播放课件的时候显示系统时间,要求第三方软件具有前端显示的功能(Always on top)。在这里,笔者推荐一款免费的时钟软件。该软件用汇编语言编写,短小精巧,可以随意移动时钟窗口位置。下载地址:http://211.90.241.130:22366/mysoft/clock.zip。

在播放幻灯片之前,先运行该软件。运行效果如图1所示(右上角显示当前时间):

二、与Flash动画结合起来显示时间

这种方法是在幻灯片母版中插入能显示时间的Flash动画。具体步骤如下:

1.用Flash制作一个能显示时间的动画

(1)用Flash新建一个文档,将其大小设置为“110×40”像素。

(2)在第一帧用文本工具添加一个文本对象,设置其文本类型为“动态文本”,字体为“arial”,字号为“20”,并将其“变量名”设置为“mytime”。

(3)打开“动作”面板,在专家模式下输入以下代码:

NowTime = new Date();

hour = NowTime.getHours();

if(length(hour) < 2)

hour = '0' + hour;

minutes = NowTime.getMinutes();

if(length(minutes) < 2)

minutes = '0' + minutes;

seconds = NowTime.getSeconds();

if(length(seconds) < 2)

seconds = '0' + seconds;

mytime = hour + ":" + minutes+ ":" + seconds;

(4)在该帧之后插入一个关键帧,打开动作面板,输入以下代码:

gotoAndPlay(1)

(5)导出影片至“C: ime.swf”备用。

2.在PowerPoint中插入Flash动画

在PowerPoint中插入Flash动画有多种方法,这里介绍比较简单的一种:

(1)将幻灯片试图切换为母版视图。

(2)从“视图”→“工具栏”中显示“控件工具箱”,在“其他控件”选择“Shockwave Flash Object”,然后在幻灯片母版的右上角绘制一个矩形,作为Flash动画的显示区域。

(3)选中该控件,单击“控件工具箱”上的“属性”按钮,打开属性对话框。

(4)将该控件的“movie”属性设置为“C: ime.swf”,“play”属性设置为“True”,“quality”属性设置为“1”。

至此,已成功在PowerPoint中插入Flash动画,由于是针对母版进行的操作,每一张幻灯片在播放的时候都会动态显示当前时间。具体效果如图2所示(右上角显示系统时间):

三、用PowerPoint内置的VBA编程实现时间动态显示

由于PowerPoint没有提供计时器控件,因此,需要调用API函数实现时间的动态显示。Shyam Pillai介绍了利用PowerPoint 2000提供的AddressOf操作调用API函数的方法。利用该方法,可以通过调用Windows的SetTimer和KillTimer函数实现时间的动态显示。具体方法如下:

1.建立TimerOnOff宏

在PowerPoint中打开“Visual Basic编辑器”,新建一个“模块”,并输入以下代码:

Option Explicit

Declare Function SetTimer Lib "user32" _

(ByVal hwnd As Long, _

ByVal nIDEvent As Long, _

ByVal uElapse As Long, _

ByVal lpTimerFunc As Long) As Long

Declare Function KillTimer Lib "user32" _

ByVal hwnd As Long, _

ByVal nIDEvent As Long) As Long

Public TimerID As Long

Public bTimerState As Boolean

Sub TimerOnOff()

If bTimerState = False Then

TimerID = SetTimer(0, 0, 1000, AddressOf TimerProc)

If TimerID = 0 Then

MsgBox "Unable to create the timer", vbCritical + vbOKOnly, "Error"

Exit Sub

End If

bTimerState = True

Else

TimerID = KillTimer(0, TimerID)

If TimerID = 0 Then

MsgBox "Unable to stop the timer", vbCritical + vbOKOnly, "Error"

End If

bTimerState = False

End If

End Sub

Sub TimerProc(ByVal hwnd As Long, _

ByVal uMsg As Long, _

ByVal idEvent As Long, _

ByVal dwTime As Long)

ActivePresentation.SlideMaster.HeadersFooters.Footer.Text = Format(Time, "hh:nn:ss")

End Sub

2.设置启动TimerOnOff宏的界面

打开“控件工具箱”,在幻灯片的第一页绘制一个命令按钮,将其“Caption”属性设置为“打开/关闭时钟”,并为其click事件编写如下代码:

call TimerOnOff

至此,在放映幻灯片时,用鼠标单击该按钮,就可以启动动态时钟,该时钟会在每张幻灯片的页脚显示当前时间。具体效果如图3所示(下方显示系统时间):

四、结束语

本文所提出的PowerPoint显示时间的三种方法中,第一种方法最简单,使用之前只需经过简单的设置就能达到目的;第二种方法用Activex在PowerPoint母版中嵌入Flash动画,该动画需要与幻灯片同在;第三种方法使用了VBA编程和Windows的API函数,相对复杂一点,但这是唯一不需要第三方软件支持的方法,在手头缺乏第三方软件时,这也是一个不错的选择。但唯一不足之处就是需要设置“宏”的安全性等级,在打开课件时需要“启用宏”,此外PowerPoint不能自动运行宏,因此需要在演示开始之前手动打开时钟。从“工具”→“宏”中选择TimerOnOff宏后,点击运行即可,本文实例中采用命令按钮来实现。当然,不管使用哪种方法,由于时钟使用的是本地计算机的系统时间,因此均需在演示开始前校正系统时间。

猜你喜欢
FLASH动画
动画美术设计中的传统艺术形式