摘要:全屏顯示多媒體課件能夠減少windows桌面的干擾,提高學習者的使用體驗,促進學習效果。該文嘗試使用Cover.u32、alTools.u32、Budapi.u32外部函數(shù)庫和windows API函數(shù)等多種方式來實現(xiàn)全屏演示,以達到快捷有效地實現(xiàn)多媒體程序全屏演示的目的。
關鍵詞: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
計算機輔助教學以其信息量大,交互性強等優(yōu)點,已成為現(xiàn)代教學技術的重要組成部分,而多媒體課件的質量,直接影響到了教學效果。Authorware開發(fā)的多媒體程序在打包后,其演示窗口的尺寸就不可以改變了,當Windows系統(tǒng)的屏幕分辨率高于課件演示界面分辨率時,演示窗口之外的內容就會和展示內容同時顯示出來,這樣,在使用多媒體課件進行教學時,Windows桌面上課件窗口以外的多于部分可能會對課件內容的演示造成干擾,影響學習效果。因此,對于多媒體課件的演示,需要進行全屏演示。在Authorware中,如果要實現(xiàn)課件的全屏播放,一般是在設計之初修改文件屬性,在“回放”選項卡的“大小”選項中設置“使用全屏”。這樣設置之后在課件運行的時候窗口就會擴展到整個屏幕。但是這種方法有一個弊端,就是如果運行環(huán)境的分辨率和設計環(huán)境的分辨率不同,課件運行時會有畫面只能局部顯示或畫面不能全屏顯示的情況,會極大地影響演示效果。解決方法有二種:將演示窗口之外變?yōu)楹谏托薷娘@示器的分辨率。
1 將演示窗口之外變?yōu)楹谏?/p>
1.1 使用外部函數(shù)庫Cover.u32
可以使用外部函數(shù)庫Cover.u32中的函數(shù)將展示窗口以外變?yōu)楹谏?/p>
實現(xiàn)方法:首先導入外部函數(shù)庫Cover.u32中的所有函數(shù);然后在程序的開始,添加一個計算圖標,輸入代碼:“cover( )”,該函數(shù)可以將演示窗口之外變成黑色;最后要在程序的退出時添加一個計算圖標,輸入代碼:“uncover( )”,該函數(shù)可以取消對窗口之外的覆蓋。
1.2 將演示窗口永久提前
使用該方法時,在win7系統(tǒng)下有時會出現(xiàn)課件演示窗口也被覆蓋,全屏為黑屏的情況,這時,就需要使用Budapi.u32函數(shù)庫中的函數(shù)baSetWindowState()將演示窗口永久提前。
實現(xiàn)方法:首先導入外部函數(shù)庫Budapi.u32中的函數(shù)baSetWindowState();然后在上述cover()函數(shù)的后面添加代碼:“baSetWindowState( WindowHandle, "StayOnTop" )”,該函數(shù)可以將演示窗口永久提前。
還可以使用winapi.u32函數(shù)庫中的函數(shù)setwindowpos(windowhandle,-1,0,0,0,0,3)將窗口永久提前,如果不想讓窗口保持永久提前狀態(tài),那么再使用setwindowpos(windowhandle,-2,0,0,0,0,3)恢復即可。
2 修改顯示器的分辨率
不同的計算機有不同的分辨率,為了使制作好的多媒體作品可以在不同的計算機上演示,并保證演示內容全屏,那么可以通過改變顯示器的分辨率的方法來對演示內容進行比例縮放,提高演示效果。修改顯示器分辨率時要注意,程序運行開始時要記錄顯示器的原始顯示參數(shù),程序運行后在結束時要恢復顯示器的原始顯示參數(shù)。
2.1 使用外部函數(shù)庫alTools
外部函數(shù)庫alTools中的函數(shù)alChangeRes(),可以用來修改分辨率。
實現(xiàn)方法:首先在演示程序開始時添加一個計算圖標,在其中添加以下代碼:
userx:=ScreenWidth
usery:=ScreenHeight
usercolor:=ScreenDepth
alChangeRes(1024,768,32)
以上代碼是使用變量userx、usery和usercolor來分別記錄顯示器的原始分辨率和位深度,函數(shù)alChangeRes(1024,768,32)的功能是設置顯示器的分辨率為1024*768。
最后在演示程序退出時在計算圖標中添加代碼“alChangeRes(userx,usery,usercolor)”,該代碼可以恢復顯示器的原始狀態(tài)。endprint
2.2 使用外部函數(shù)庫Budapi.u32
外部函數(shù)庫Budapi.u32包含了信息函數(shù)、系統(tǒng)函數(shù)、文件函數(shù)、 Windows 函數(shù)和注冊表函數(shù)。這里使用函數(shù)來baSetDisplay實現(xiàn)全屏演示。
實現(xiàn)方法:
1) 程序開始時判斷并修改顯示器分辨率
在演示程序開始時添加一個計算圖標,其中添加以下代碼:
WriteExtFile(RecordsLocation^"skcyh.ini","演示設置") ——在有文件跳轉的情況下采用寫文件的方式記錄原來系統(tǒng)的顯示參數(shù),如果是單個文件的演示則可以省略
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")
——以上代碼是使用用函數(shù)baWriteIni()寫配置文件,將顯示器的原始分辨率寫入文件skcyh.ini
if ((userx<>1024)(usery<>768)(usercolor<>32)) then
setdisplay:=1
baSetDisplay(1024,768,32)
else
setdisplay:=0
end if
——以上代碼段用來檢測并設置目標顯示參數(shù),如果顯示器的原始分辨率不是1024*768、32位位深度,則設置顯示器分辨率為該參數(shù);變量setdisplay為開關參數(shù),記錄了系統(tǒng)顯示參數(shù)的變化情況,值為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中讀取記錄的原始顯示參數(shù)
if setdisplay=1 then
baSetDisplay(userx, usery, usercolor)
end if
——以上代碼段用來恢復原始顯示參數(shù),當開關參數(shù)setdisplay為1時顯示器的顯示參數(shù)進行過修改,所以使用baSetDisplay()函數(shù)來恢復顯示參數(shù)。
Quit() ——退出程序
3 結束語
運行結果表明,以上幾種方法可以快速有效的實現(xiàn)多媒體程序的全屏演示效果。將演示窗口之外全部變黑的優(yōu)點是可以保持演示程序的設計原貌,缺點是當顯示器分辨率大于程序設計分辨率時,不能有效利用顯示器桌面的全部空間;修改顯示器分辨
率的優(yōu)點是可以將演示內容全屏顯示,但有時演示內容會因分辨率放大而產(chǎn)生略微的變形。設計者在制作時可以結合演示內容和使用環(huán)境選擇有效的方法來進行全屏演示的設置。如果需要演示內容全屏顯示,那么使用修改顯示器分辨率的方法可以達到較好的演示效果;演示程序中涉及到多個文件跳轉時就需要通過寫和讀配置文件的方法來設置分辨率;但由于各種原因,可能不能隨意修改顯示器的分辨率時,則只能使用將演示窗口外圍設置為黑色,并將演示窗口永久提前的方法來達到較好的演示效果。這些方法中使用Budapi.u32函數(shù)庫中的函數(shù)會更加方便且穩(wěn)定。
參考文獻:
[1] 袁海東.深入Authorware7.0編程[M].北京:電子工業(yè)出版社,2004.
[2] 徐瑾,王逢娟.多媒體作品創(chuàng)意設計與實現(xiàn)[M].北京:北京師范大學大學出版社,2009.
[3] 畢廣吉.Authorware變量、函數(shù)、控件手冊與范例[M].北京:電子工業(yè)出版社,2003.endprint