论文部分内容阅读
摘要:全屏显示多媒体课件能够减少windows桌面的干扰,提高学习者的使用体验,促进学习效果。该文尝试使用Cover.u32、alTools.u32、Budapi.u32外部函数库和windows API函数等多种方式来实现全屏演示,以达到快捷有效地实现多媒体程序全屏演示的目的。
关键词:Authorware;多媒体课件;演示窗口
中图分类号:TP37 文献标识码:A 文章编号:1009-3044(2014)18-4269-02
Realization of ful-L Screen Display of Multimedia Courseware
XU Jin
(College of Software Engineering of Lanzhou Institute Of Technology, Lanzhou 730050, China)
Abstract: Full screen display of multimedia software can reduce the interference of the windows desktop, improve the learning experience and learning effect. In order to achieve fast and effectively full screen demonstration purposes, this paper attempts to use a variety of ways such as Cover.u32, alTools.u32, Budapi.u32 external library and windows API function.
Key words: Authorware; Multimedia Courseware; Full screen display
计算机辅助教学以其信息量大,交互性强等优点,已成为现代教学技术的重要组成部分,而多媒体课件的质量,直接影响到了教学效果。Authorware开发的多媒体程序在打包后,其演示窗口的尺寸就不可以改变了,当Windows系统的屏幕分辨率高于课件演示界面分辨率时,演示窗口之外的内容就会和展示内容同时显示出来,这样,在使用多媒体课件进行教学时,Windows桌面上课件窗口以外的多于部分可能会对课件内容的演示造成干扰,影响学习效果。因此,对于多媒体课件的演示,需要进行全屏演示。在Authorware中,如果要实现课件的全屏播放,一般是在设计之初修改文件属性,在“回放”选项卡的“大小”选项中设置“使用全屏”。这样设置之后在课件运行的时候窗口就会扩展到整个屏幕。但是这种方法有一个弊端,就是如果运行环境的分辨率和设计环境的分辨率不同,课件运行时会有画面只能局部显示或画面不能全屏显示的情况,会极大地影响演示效果。解决方法有二种:将演示窗口之外变为黑色和修改显示器的分辨率。
1 将演示窗口之外变为黑色
1.1 使用外部函数库Cover.u32
可以使用外部函数库Cover.u32中的函数将展示窗口以外变为黑色。
实现方法:首先导入外部函数库Cover.u32中的所有函数;然后在程序的开始,添加一个计算图标,输入代码:“cover( )”,该函数可以将演示窗口之外变成黑色;最后要在程序的退出时添加一个计算图标,输入代码:“uncover( )”,该函数可以取消对窗口之外的覆盖。
1.2 将演示窗口永久提前
使用该方法时,在win7系统下有时会出现课件演示窗口也被覆盖,全屏为黑屏的情况,这时,就需要使用Budapi.u32函数库中的函数baSetWindowState()将演示窗口永久提前。
实现方法:首先导入外部函数库Budapi.u32中的函数baSetWindowState();然后在上述cover()函数的后面添加代码:“baSetWindowState( WindowHandle, "StayOnTop" )”,该函数可以将演示窗口永久提前。
还可以使用winapi.u32函数库中的函数setwindowpos(windowhandle,-1,0,0,0,0,3)将窗口永久提前,如果不想让窗口保持永久提前状态,那么再使用setwindowpos(windowhandle,-2,0,0,0,0,3)恢复即可。
2 修改显示器的分辨率
不同的计算机有不同的分辨率,为了使制作好的多媒体作品可以在不同的计算机上演示,并保证演示内容全屏,那么可以通过改变显示器的分辨率的方法来对演示内容进行比例缩放,提高演示效果。修改显示器分辨率时要注意,程序运行开始时要记录显示器的原始显示参数,程序运行后在结束时要恢复显示器的原始显示参数。
2.1 使用外部函数库alTools
外部函数库alTools中的函数alChangeRes(),可以用来修改分辨率。
实现方法:首先在演示程序开始时添加一个计算图标,在其中添加以下代码:
userx:=ScreenWidth
usery:=ScreenHeight
usercolor:=ScreenDepth
alChangeRes(1024,768,32)
以上代码是使用变量userx、usery和usercolor来分别记录显示器的原始分辨率和位深度,函数alChangeRes(1024,768,32)的功能是设置显示器的分辨率为1024*768。
最后在演示程序退出时在计算图标中添加代码“alChangeRes(userx,usery,usercolor)”,该代码可以恢复显示器的原始状态。 2.2 使用外部函数库Budapi.u32
外部函数库Budapi.u32包含了信息函数、系统函数、文件函数、 Windows 函数和注册表函数。这里使用函数来baSetDisplay实现全屏演示。
实现方法:
1) 程序开始时判断并修改显示器分辨率
在演示程序开始时添加一个计算图标,其中添加以下代码:
WriteExtFile(RecordsLocation^"skcyh.ini","演示设置") ——在有文件跳转的情况下采用写文件的方式记录原来系统的显示参数,如果是单个文件的演示则可以省略
userx:=ScreenWidth
usery:=ScreenHeight
usercolor:=ScreenDepth
——以上代码是使用变量userx、usery和usercolor来分别记录显示器的原始分辨率和位深度。
baWriteIni("显示分辨率","width", userx, RecordsLocation^"skcyh.ini")
baWriteIni("显示分辨率","Height", usery, RecordsLocation^"skcyh.ini")
baWriteIni("显示分辨率","Depth", usercolor, RecordsLocation^"skcyh.ini")
——以上代码是使用用函数baWriteIni()写配置文件,将显示器的原始分辨率写入文件skcyh.ini
if ((userx<>1024)(usery<>768)(usercolor<>32)) then
setdisplay:=1
baSetDisplay(1024,768,32)
else
setdisplay:=0
end if
——以上代码段用来检测并设置目标显示参数,如果显示器的原始分辨率不是1024*768、32位位深度,则设置显示器分辨率为该参数;变量setdisplay为开关参数,记录了系统显示参数的变化情况,值为1时表示显示器分辨率进行了修改,值为0时表示显示器分辨率没有进行修改。
2) 程序结束时恢复显示器分辨率
程序结束时在计算图标中添加以下代码:
userx:=baReadIni("显示分辨率","width",userx,RecordsLocation^"skcyh.ini")
usery:=baReadIni("显示分辨率","Height",usery,RecordsLocation^"skcyh.ini")
usercolor:=baReadIni("显示分辨率","Depth",usercolor,RecordsLocation^"skcyh.ini")
——以上代码用来从配置文件skcyh.ini中读取记录的原始显示参数
if setdisplay=1 then
baSetDisplay(userx, usery, usercolor)
end if
——以上代码段用来恢复原始显示参数,当开关参数setdisplay为1时显示器的显示参数进行过修改,所以使用baSetDisplay()函数来恢复显示参数。
Quit() ——退出程序
3 结束语
运行结果表明,以上几种方法可以快速有效的实现多媒体程序的全屏演示效果。将演示窗口之外全部变黑的优点是可以保持演示程序的设计原貌,缺点是当显示器分辨率大于程序设计分辨率时,不能有效利用显示器桌面的全部空间;修改显示器分辨
率的优点是可以将演示内容全屏显示,但有时演示内容会因分辨率放大而产生略微的变形。设计者在制作时可以结合演示内容和使用环境选择有效的方法来进行全屏演示的设置。如果需要演示内容全屏显示,那么使用修改显示器分辨率的方法可以达到较好的演示效果;演示程序中涉及到多个文件跳转时就需要通过写和读配置文件的方法来设置分辨率;但由于各种原因,可能不能随意修改显示器的分辨率时,则只能使用将演示窗口外围设置为黑色,并将演示窗口永久提前的方法来达到较好的演示效果。这些方法中使用Budapi.u32函数库中的函数会更加方便且稳定。
参考文献:
[1] 袁海东.深入Authorware7.0编程[M].北京:电子工业出版社,2004.
[2] 徐瑾,王逢娟.多媒体作品创意设计与实现[M].北京:北京师范大学大学出版社,2009.
[3] 毕广吉.Authorware变量、函数、控件手册与范例[M].北京:电子工业出版社,2003.
关键词:Authorware;多媒体课件;演示窗口
中图分类号:TP37 文献标识码:A 文章编号:1009-3044(2014)18-4269-02
Realization of ful-L Screen Display of Multimedia Courseware
XU Jin
(College of Software Engineering of Lanzhou Institute Of Technology, Lanzhou 730050, China)
Abstract: Full screen display of multimedia software can reduce the interference of the windows desktop, improve the learning experience and learning effect. In order to achieve fast and effectively full screen demonstration purposes, this paper attempts to use a variety of ways such as Cover.u32, alTools.u32, Budapi.u32 external library and windows API function.
Key words: Authorware; Multimedia Courseware; Full screen display
计算机辅助教学以其信息量大,交互性强等优点,已成为现代教学技术的重要组成部分,而多媒体课件的质量,直接影响到了教学效果。Authorware开发的多媒体程序在打包后,其演示窗口的尺寸就不可以改变了,当Windows系统的屏幕分辨率高于课件演示界面分辨率时,演示窗口之外的内容就会和展示内容同时显示出来,这样,在使用多媒体课件进行教学时,Windows桌面上课件窗口以外的多于部分可能会对课件内容的演示造成干扰,影响学习效果。因此,对于多媒体课件的演示,需要进行全屏演示。在Authorware中,如果要实现课件的全屏播放,一般是在设计之初修改文件属性,在“回放”选项卡的“大小”选项中设置“使用全屏”。这样设置之后在课件运行的时候窗口就会扩展到整个屏幕。但是这种方法有一个弊端,就是如果运行环境的分辨率和设计环境的分辨率不同,课件运行时会有画面只能局部显示或画面不能全屏显示的情况,会极大地影响演示效果。解决方法有二种:将演示窗口之外变为黑色和修改显示器的分辨率。
1 将演示窗口之外变为黑色
1.1 使用外部函数库Cover.u32
可以使用外部函数库Cover.u32中的函数将展示窗口以外变为黑色。
实现方法:首先导入外部函数库Cover.u32中的所有函数;然后在程序的开始,添加一个计算图标,输入代码:“cover( )”,该函数可以将演示窗口之外变成黑色;最后要在程序的退出时添加一个计算图标,输入代码:“uncover( )”,该函数可以取消对窗口之外的覆盖。
1.2 将演示窗口永久提前
使用该方法时,在win7系统下有时会出现课件演示窗口也被覆盖,全屏为黑屏的情况,这时,就需要使用Budapi.u32函数库中的函数baSetWindowState()将演示窗口永久提前。
实现方法:首先导入外部函数库Budapi.u32中的函数baSetWindowState();然后在上述cover()函数的后面添加代码:“baSetWindowState( WindowHandle, "StayOnTop" )”,该函数可以将演示窗口永久提前。
还可以使用winapi.u32函数库中的函数setwindowpos(windowhandle,-1,0,0,0,0,3)将窗口永久提前,如果不想让窗口保持永久提前状态,那么再使用setwindowpos(windowhandle,-2,0,0,0,0,3)恢复即可。
2 修改显示器的分辨率
不同的计算机有不同的分辨率,为了使制作好的多媒体作品可以在不同的计算机上演示,并保证演示内容全屏,那么可以通过改变显示器的分辨率的方法来对演示内容进行比例缩放,提高演示效果。修改显示器分辨率时要注意,程序运行开始时要记录显示器的原始显示参数,程序运行后在结束时要恢复显示器的原始显示参数。
2.1 使用外部函数库alTools
外部函数库alTools中的函数alChangeRes(),可以用来修改分辨率。
实现方法:首先在演示程序开始时添加一个计算图标,在其中添加以下代码:
userx:=ScreenWidth
usery:=ScreenHeight
usercolor:=ScreenDepth
alChangeRes(1024,768,32)
以上代码是使用变量userx、usery和usercolor来分别记录显示器的原始分辨率和位深度,函数alChangeRes(1024,768,32)的功能是设置显示器的分辨率为1024*768。
最后在演示程序退出时在计算图标中添加代码“alChangeRes(userx,usery,usercolor)”,该代码可以恢复显示器的原始状态。 2.2 使用外部函数库Budapi.u32
外部函数库Budapi.u32包含了信息函数、系统函数、文件函数、 Windows 函数和注册表函数。这里使用函数来baSetDisplay实现全屏演示。
实现方法:
1) 程序开始时判断并修改显示器分辨率
在演示程序开始时添加一个计算图标,其中添加以下代码:
WriteExtFile(RecordsLocation^"skcyh.ini","演示设置") ——在有文件跳转的情况下采用写文件的方式记录原来系统的显示参数,如果是单个文件的演示则可以省略
userx:=ScreenWidth
usery:=ScreenHeight
usercolor:=ScreenDepth
——以上代码是使用变量userx、usery和usercolor来分别记录显示器的原始分辨率和位深度。
baWriteIni("显示分辨率","width", userx, RecordsLocation^"skcyh.ini")
baWriteIni("显示分辨率","Height", usery, RecordsLocation^"skcyh.ini")
baWriteIni("显示分辨率","Depth", usercolor, RecordsLocation^"skcyh.ini")
——以上代码是使用用函数baWriteIni()写配置文件,将显示器的原始分辨率写入文件skcyh.ini
if ((userx<>1024)(usery<>768)(usercolor<>32)) then
setdisplay:=1
baSetDisplay(1024,768,32)
else
setdisplay:=0
end if
——以上代码段用来检测并设置目标显示参数,如果显示器的原始分辨率不是1024*768、32位位深度,则设置显示器分辨率为该参数;变量setdisplay为开关参数,记录了系统显示参数的变化情况,值为1时表示显示器分辨率进行了修改,值为0时表示显示器分辨率没有进行修改。
2) 程序结束时恢复显示器分辨率
程序结束时在计算图标中添加以下代码:
userx:=baReadIni("显示分辨率","width",userx,RecordsLocation^"skcyh.ini")
usery:=baReadIni("显示分辨率","Height",usery,RecordsLocation^"skcyh.ini")
usercolor:=baReadIni("显示分辨率","Depth",usercolor,RecordsLocation^"skcyh.ini")
——以上代码用来从配置文件skcyh.ini中读取记录的原始显示参数
if setdisplay=1 then
baSetDisplay(userx, usery, usercolor)
end if
——以上代码段用来恢复原始显示参数,当开关参数setdisplay为1时显示器的显示参数进行过修改,所以使用baSetDisplay()函数来恢复显示参数。
Quit() ——退出程序
3 结束语
运行结果表明,以上几种方法可以快速有效的实现多媒体程序的全屏演示效果。将演示窗口之外全部变黑的优点是可以保持演示程序的设计原貌,缺点是当显示器分辨率大于程序设计分辨率时,不能有效利用显示器桌面的全部空间;修改显示器分辨
率的优点是可以将演示内容全屏显示,但有时演示内容会因分辨率放大而产生略微的变形。设计者在制作时可以结合演示内容和使用环境选择有效的方法来进行全屏演示的设置。如果需要演示内容全屏显示,那么使用修改显示器分辨率的方法可以达到较好的演示效果;演示程序中涉及到多个文件跳转时就需要通过写和读配置文件的方法来设置分辨率;但由于各种原因,可能不能随意修改显示器的分辨率时,则只能使用将演示窗口外围设置为黑色,并将演示窗口永久提前的方法来达到较好的演示效果。这些方法中使用Budapi.u32函数库中的函数会更加方便且稳定。
参考文献:
[1] 袁海东.深入Authorware7.0编程[M].北京:电子工业出版社,2004.
[2] 徐瑾,王逢娟.多媒体作品创意设计与实现[M].北京:北京师范大学大学出版社,2009.
[3] 毕广吉.Authorware变量、函数、控件手册与范例[M].北京:电子工业出版社,2003.