论文部分内容阅读
摘要:Authorware作品在演示时往往会出现演示窗口不能按设计者的意图全屏显示的问题,产生这一现象的原因是计算机系统的显示器分辨率与作品设计分辨率不一致。文中详细说明了解决这个问题所采用的两种技术,并提出了三种可行的解决方法。
关键词:Authorware;演示窗口;控制;分辨率;UCD函数
中图分类号:TP317文献标识码:A文章编号:1009-3044(2007)06-11729-02
1 引言
使用Authorware制做多媒体作品,打包后演示,往往会出现演示窗口不能按设计者的意图全屏显示的问题。例如,作品设计成800×600像素的窗口,当它在1024×768显示器分辨率下演示时,作品画面没有充满整个屏幕,演示窗口后面的桌面大大影响了作品的视觉效果;如果把作品设计成1024×768的分辨率,又不能在800×600分辨率的显示器上完整地显示出来,精心设计的漂亮界面变得残缺不全。下面分析产生这一现象的根本原因,并提出基于设置文件属性和使用UCD函数两种技术的三种解决方法。
2 影响作品全屏显示的原因
计算机系统中设置的显示器分辨率与作品设计分辨率不一致是影响作品全屏显示的根本原因。
显示器分辨率是指显示器所能显示的点数的多少,通常以“横向点数×纵向点数”表示,可显示的点数越多,画面就越精细,同样的屏幕区域内能显示的信息也越多。如果把整个图像想象成是一个大型的棋盘,分辨率就是所有经线和纬线交叉点的数目。以分辨率为1024×768的屏幕来说,即在显示器上横向有1024个点,纵向有768个点。在不同的计算机系统中,显示器分辨率不完全相同。当设计分辨率低于显示器分辨率时,作品演示窗口就不能充满整个屏幕显示;当设计分辨率高于显示器分辨率时,作品演示窗口中右下角的画面又不能显示出来;只有当设计分辨率与显示器分辨率相同时,作品演示窗口才能正常全屏显示。如何使设计分辨率自动适应不同的显示器分辨率,以满足设计需要呢?
3 采用技术
通过设置文件属性和使用UCD函数这两种技术,可以很好地实现Authorware作品演示窗口的全屏显示。
3.1 技术一:设置文件属性
这种技术的实现比较简单,利用菜单命令“Modify(修改)”即可完成,但并不是真正意义上的全屏控制。
3.2 技术二:使用UCD函数
UCD函数是由第三方开发的函数,称为User Code Documents(用户代码文档),它是对Authorware薄弱环节的重要补充,极大地丰富了Authorware的功能,完成了许多Authorware原来不能完成的工作。多媒体作品开发人员通过UCD函数可以以透明的方式访问Windows的DLL(动态链接库),实现对Windows的API(应用程序接口)的控制。
由于UCD函数不是Authorware的系统函数,使用时必须先载入,作品打包发行时还要把相关的UCD文件一同打包发行,并且要安装在程序能够查找到的路径中。
4 解决方法
4.1 方法一:设置文件属性
打开Authorware源文件,单击菜单“Modify(修改)àFile(文件)àProperties(属性)”,在弹出的文件属性面板中,下拉“Size(大小)”选项,选择“Use Full Screen(使用全屏)”方式。
使用这种设置时,不管用户显示器的分辨率大小如何,系统都会自动调整演示窗口的大小使之全屏显示。但采用这种方法实现的全屏并不是真正意义上的全屏,也就是演示窗口虽然全屏了,但窗口中的内容不会按比例进行缩放,设计分辨率小于显示器分辨率时,会出现窗口内容显示在屏幕左上角(即使在文件属性面板中勾选了“Center on Screen(屏幕居中)”也不起作用),大大影响了作品的整体视觉效果。
4.2 方法二:使用cover()函数
针对方法一中窗口内容显示在屏幕左上角的问题,利用cover.u32函数可以得到很好地解决。cover.u32中包含两个控制屏幕显示的函数,它们一般是成对使用的,其格式及功能说明如下:
格式:id:=cover()
功能:该函数将桌面隐藏起来,使得Authorware程序运行时,屏幕上只能看到演示窗口中的内容。
格式:uncover()
功能:该函数将用cover()函数隐藏的桌面重新显示。
打开Authorware源文件,单击“函数窗口”按钮 ,在“Category(分类)”下拉列表的最底部选择当前文件名,单击左下角 “load(载入)”按钮,在“load function(载入函数)”窗口中选择“cover.u32”,载入cover()和uncover()这两个函数。在主程序最前面添加一个计算图标,输入“cover()”,在主程序退出之前添加一个计算图标,输入“uncover()”,最后在文件属性面板中勾选“Center on Screen(屏幕居中)”。保存发布,演示作品,可以看到桌面变成了黑色,作品演示窗口居中浮于黑色背景之上,视觉效果很不错,当运行到“uncover()”后,桌面复原。
如果觉得演示窗口浮在黑色的桌面上太压抑,可以使用RGBcover.u32中的RGBcover()函数来定义桌面的背景颜色,其使用方法与cover()函数相似,在此不再赘述。
这种方法的视觉效果虽然不错,但仍不能实现窗口内容按比例缩放,达到真正意义上的全屏。
4.3 方法三:使用alChangeRes()函数
使用altools.u32中的alChangeRes()函数和binapi.u32中的baScreenInfo()函数,可以使设计分辨率自适用不同的显示器分辨率,实现窗口内容按比例缩放,使演示窗口真正全屏。函数格式及功能、参数说明如下:
格式:alChangeRes(Width,hight,bitpp,ifreq)功能:改变屏幕分辨率。
参数:Width——宽度(像素);hight——高度(像素);bitpp——颜色位数;ifreq——刷新频率(赫兹)。
格式:result:=baScreenInfo(InfoType)
功能:取得InfoType指定的屏幕信息。
参数:InfoType——屏幕信息类型,可以是“width”、“hight”、“depth”、“font height”、“titlebar height”、“menubar height”和“refresh”。
按方法二载入alChangeRes ()函数和baScreenInfo()函数,在主程序最前面添加一个计算图标,输入以下内容:
width:=ScreenWidth
height:=ScreenHeight
bitpp:=ScreenDepth
ifreq:=baScreenInfo(“refresh”)
-- ScreenWidth、ScreenHeight、ScreenDepth三个系统变量保存了当前显示器的分辨率和颜色位数,利用baScreenInfo(“refresh”)函数获取当前的刷新频率,把它们保存起来,以便程序退出时恢复。
w0:=800
h0:=600
d0:=16
i0:=75
--设置设计分辨率为800×600,16位真彩色,刷新频率为75赫兹。
if width<>w0| height<> h0 then
alChangeRes(w0,h0,d0,i0)
changed:=1
end if
--如果当前显示器分辩率与设计分辨率不相同,修改分辩率进行屏幕调整,并标记屏幕分辨率已被更改。
在退出程序之前添加入一个计算图标,输入以下内容:
if changed=1 then alChangeRes(width,height,bitpp,ifreq)
--如果分辨率被更改过就进行恢复。
这种方法能充分利用屏幕显示区域,对演示窗口中的内容按比例缩放,实现演示窗口真正地全屏显示。
5 总结
目前,第三方开发的UCD、ActiveX和Xtras很多,它们极大地扩展了Authorware的功能,利用这些函数和控件,可以帮助多媒体作品开发人员开发出交互性更好、功能更强、更具吸引力的优秀作品。
参考文献:
[1]毕广吉.Authorware变量、函数、控件手册与范例[M].北京:电子工业出版社,2003.
[2]李富荣.Authorware 7实用培训教程[M].北京:清华大学出版社,2003.
[3]http://www.authorware.cn.
本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键词:Authorware;演示窗口;控制;分辨率;UCD函数
中图分类号:TP317文献标识码:A文章编号:1009-3044(2007)06-11729-02
1 引言
使用Authorware制做多媒体作品,打包后演示,往往会出现演示窗口不能按设计者的意图全屏显示的问题。例如,作品设计成800×600像素的窗口,当它在1024×768显示器分辨率下演示时,作品画面没有充满整个屏幕,演示窗口后面的桌面大大影响了作品的视觉效果;如果把作品设计成1024×768的分辨率,又不能在800×600分辨率的显示器上完整地显示出来,精心设计的漂亮界面变得残缺不全。下面分析产生这一现象的根本原因,并提出基于设置文件属性和使用UCD函数两种技术的三种解决方法。
2 影响作品全屏显示的原因
计算机系统中设置的显示器分辨率与作品设计分辨率不一致是影响作品全屏显示的根本原因。
显示器分辨率是指显示器所能显示的点数的多少,通常以“横向点数×纵向点数”表示,可显示的点数越多,画面就越精细,同样的屏幕区域内能显示的信息也越多。如果把整个图像想象成是一个大型的棋盘,分辨率就是所有经线和纬线交叉点的数目。以分辨率为1024×768的屏幕来说,即在显示器上横向有1024个点,纵向有768个点。在不同的计算机系统中,显示器分辨率不完全相同。当设计分辨率低于显示器分辨率时,作品演示窗口就不能充满整个屏幕显示;当设计分辨率高于显示器分辨率时,作品演示窗口中右下角的画面又不能显示出来;只有当设计分辨率与显示器分辨率相同时,作品演示窗口才能正常全屏显示。如何使设计分辨率自动适应不同的显示器分辨率,以满足设计需要呢?
3 采用技术
通过设置文件属性和使用UCD函数这两种技术,可以很好地实现Authorware作品演示窗口的全屏显示。
3.1 技术一:设置文件属性
这种技术的实现比较简单,利用菜单命令“Modify(修改)”即可完成,但并不是真正意义上的全屏控制。
3.2 技术二:使用UCD函数
UCD函数是由第三方开发的函数,称为User Code Documents(用户代码文档),它是对Authorware薄弱环节的重要补充,极大地丰富了Authorware的功能,完成了许多Authorware原来不能完成的工作。多媒体作品开发人员通过UCD函数可以以透明的方式访问Windows的DLL(动态链接库),实现对Windows的API(应用程序接口)的控制。
由于UCD函数不是Authorware的系统函数,使用时必须先载入,作品打包发行时还要把相关的UCD文件一同打包发行,并且要安装在程序能够查找到的路径中。
4 解决方法
4.1 方法一:设置文件属性
打开Authorware源文件,单击菜单“Modify(修改)àFile(文件)àProperties(属性)”,在弹出的文件属性面板中,下拉“Size(大小)”选项,选择“Use Full Screen(使用全屏)”方式。
使用这种设置时,不管用户显示器的分辨率大小如何,系统都会自动调整演示窗口的大小使之全屏显示。但采用这种方法实现的全屏并不是真正意义上的全屏,也就是演示窗口虽然全屏了,但窗口中的内容不会按比例进行缩放,设计分辨率小于显示器分辨率时,会出现窗口内容显示在屏幕左上角(即使在文件属性面板中勾选了“Center on Screen(屏幕居中)”也不起作用),大大影响了作品的整体视觉效果。
4.2 方法二:使用cover()函数
针对方法一中窗口内容显示在屏幕左上角的问题,利用cover.u32函数可以得到很好地解决。cover.u32中包含两个控制屏幕显示的函数,它们一般是成对使用的,其格式及功能说明如下:
格式:id:=cover()
功能:该函数将桌面隐藏起来,使得Authorware程序运行时,屏幕上只能看到演示窗口中的内容。
格式:uncover()
功能:该函数将用cover()函数隐藏的桌面重新显示。
打开Authorware源文件,单击“函数窗口”按钮 ,在“Category(分类)”下拉列表的最底部选择当前文件名,单击左下角 “load(载入)”按钮,在“load function(载入函数)”窗口中选择“cover.u32”,载入cover()和uncover()这两个函数。在主程序最前面添加一个计算图标,输入“cover()”,在主程序退出之前添加一个计算图标,输入“uncover()”,最后在文件属性面板中勾选“Center on Screen(屏幕居中)”。保存发布,演示作品,可以看到桌面变成了黑色,作品演示窗口居中浮于黑色背景之上,视觉效果很不错,当运行到“uncover()”后,桌面复原。
如果觉得演示窗口浮在黑色的桌面上太压抑,可以使用RGBcover.u32中的RGBcover()函数来定义桌面的背景颜色,其使用方法与cover()函数相似,在此不再赘述。
这种方法的视觉效果虽然不错,但仍不能实现窗口内容按比例缩放,达到真正意义上的全屏。
4.3 方法三:使用alChangeRes()函数
使用altools.u32中的alChangeRes()函数和binapi.u32中的baScreenInfo()函数,可以使设计分辨率自适用不同的显示器分辨率,实现窗口内容按比例缩放,使演示窗口真正全屏。函数格式及功能、参数说明如下:
格式:alChangeRes(Width,hight,bitpp,ifreq)功能:改变屏幕分辨率。
参数:Width——宽度(像素);hight——高度(像素);bitpp——颜色位数;ifreq——刷新频率(赫兹)。
格式:result:=baScreenInfo(InfoType)
功能:取得InfoType指定的屏幕信息。
参数:InfoType——屏幕信息类型,可以是“width”、“hight”、“depth”、“font height”、“titlebar height”、“menubar height”和“refresh”。
按方法二载入alChangeRes ()函数和baScreenInfo()函数,在主程序最前面添加一个计算图标,输入以下内容:
width:=ScreenWidth
height:=ScreenHeight
bitpp:=ScreenDepth
ifreq:=baScreenInfo(“refresh”)
-- ScreenWidth、ScreenHeight、ScreenDepth三个系统变量保存了当前显示器的分辨率和颜色位数,利用baScreenInfo(“refresh”)函数获取当前的刷新频率,把它们保存起来,以便程序退出时恢复。
w0:=800
h0:=600
d0:=16
i0:=75
--设置设计分辨率为800×600,16位真彩色,刷新频率为75赫兹。
if width<>w0| height<> h0 then
alChangeRes(w0,h0,d0,i0)
changed:=1
end if
--如果当前显示器分辩率与设计分辨率不相同,修改分辩率进行屏幕调整,并标记屏幕分辨率已被更改。
在退出程序之前添加入一个计算图标,输入以下内容:
if changed=1 then alChangeRes(width,height,bitpp,ifreq)
--如果分辨率被更改过就进行恢复。
这种方法能充分利用屏幕显示区域,对演示窗口中的内容按比例缩放,实现演示窗口真正地全屏显示。
5 总结
目前,第三方开发的UCD、ActiveX和Xtras很多,它们极大地扩展了Authorware的功能,利用这些函数和控件,可以帮助多媒体作品开发人员开发出交互性更好、功能更强、更具吸引力的优秀作品。
参考文献:
[1]毕广吉.Authorware变量、函数、控件手册与范例[M].北京:电子工业出版社,2003.
[2]李富荣.Authorware 7实用培训教程[M].北京:清华大学出版社,2003.
[3]http://www.authorware.cn.
本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。