Authorware作品全屏显示控制技术

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:silvervan
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要: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格式阅读原文。
其他文献
摘要:首先介绍了组件技术和框架技术的思想和设计原则,并在此基础上提出了设计Agent结构应该遵循的原则;依照文中所述的各项原则,提出了一种基于组件的Agent框架,并对框架中的组件及工作原理进行了详细地描述。  关键词:框架;组件;Agent结构模型  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)06-11637-03    1 引言  多Agent系统(MAS)能
期刊
摘要:μC/OS-II是一个基于抢占式的实时多任务内核,可固化、可剪裁、具有高稳定性和可靠性,μC/OS-II作为一个操作系统内核,它没有设备驱动程序管理部分。文章着重阐述了如何为μC/OS-II添加设备驱动程序管理模块,并给出了在NEC PD78F0376 平台下串口驱动程序的范例。  关键词: μC/OS-II;驱动设备管理;串口驱动  中图分类号:TP316文献标识码:A文章编号:1009-
期刊
摘要:当前基于P2P模式的开发与应用引起人们的广泛关注,JXTA是SUN公司推出的,提供了一个构建跨平台、跨操作系统和跨编程语言的P2P网络应用程序的通用平台。文章介绍了JXTA的功能,详细分析JXTA平台的环境配置,及其基础上的HelloWorld程序的运行。  关键词:JXTA;P2P;JXTA configurator tool  中图分类号:TP393 文献标识码:A文章编号:1009-3
期刊
摘要:J2EE是目前流行且成熟的分布式应用开发模型,结合J2EE在开发分布式应用方面的优势,设计了一种基于J2EE平台的电子邮件系统,并利用JavaMail强大的邮件处理功能,对系统进行了实现。  关键词:电子邮件;J2EE;JavaMail  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)06-11647-02    1 引言  电子邮件是Internet上应用最广
期刊
摘要:通过对低端FPGA的设计,完成数据量不大的光口通信功能;并对传输中的协议进行了说明,实现了数据的有效传输。  关键词:FPGA;SPARTAN3E;光通信  中图分类号:TP311 文献标识码:A文章编号:1009-3044(2007)06-11669-02    1 引言  当今,在电子设计领域,FPGA因为其强大的功能、低功耗、高速并行处理等优势越来越受到广大设计人员的青睐。无论在工业控
期刊
摘要:文章对网络图形建模语言(Java 3D)进行了研究,通过Java 3D构建三维世界,并在网页上显示三维图像,用Java 3D的图形技术,把转换形成的图形格式直接用于仿真之中,不需要利用编程方式进行建模。使得数控加工仿真技术达到缩短加工编程的周期、提高生产效率、降低生产成本的意义。  关键词:Java 3D;三维绘图;数控仿真;网页  中图分类号:TP391 文献标记码:A 文章编号:1009
期刊
摘要:本文探讨利用Matlab来解决高等数学中的二维图形问题,并对其中的初等函数、极坐标、统计图进行实例分析,对于这些很难用手工绘制的图形,利用Matlab则很轻易地解决。  关键词:Matlab;高等数学;二维图形  中图分类号:TP319文献标识码:A文章编号:1009-3044(2007)06-11677-01    1 引言  Matlab是将计算、可视化和编程功能集成在非常便于使用的环境
期刊
摘要:C语言中的++运算符是一种特殊的运算符,其特殊性在于一个运算符包含两个操作,不同的编译器对这两个操作在复合表达式中的处理机制不同,而同一个编译器对其在程序中的不同位置也有不同的处理。教材中仅仅对++运算符作了最简单的介绍,并没有对++运算的左连接和右连接同时参与运算时的处理规则作介绍,本文对++运算在不同情况下的求解进行了深入研究,得出对++运算符的运算要根据一定的程序环境和编译器环境而定。
期刊
摘要:针对BP基本算法应用于曲面重建的缺点,提出自调整S型函数方法,并利用共轭梯度法同时调整权值系数和S型函数的形状参数,使得收敛曲线能够迅速摆脱平缓的区域,加速了收敛进程。将这一改进的算法应用于BP网重建自由曲面中,仿真结果表明,同BP基本算法相比,在收敛速度和重建精度上均有较大程度的提高。  关键词:自由曲面;BP神经网络;共轭梯度法;S型函数  中图分类号:TP183 文献标识码:A文章编号
期刊
摘要:文介绍了现代企业在信息化建设过程中遇到的交互和耦合问题,阐述了面向服务构建企业应用的解决方案——ESB企业服务总线,对该解决方案给出了详细的设计,并举出实现例子。  关键词:面向服务;企业解决方案;企业服务总线  中图分类号:TP391 文献标识码:B 文章编号:1009-3044(2007)06-11659-02    1 问题提出  企业信息化建设,大部分已经结束各自为政的各业务部门独立
期刊