實例2、光驅開關控制
實例說明:
利用第三方屏幕檢測模塊altools.u32(由于現在操作的平臺都是32位的,所以對16位的ucd不再做說明)檢測屏幕分辨率,動態將提示放在系統托盤上方,通過對gif小圖像的變換形象地控制光驅開關,類似用普通編程控制光驅。
注意:在使用ucd文件時,要將文件拷貝到authorware目錄下面,通過調用自定義函數來使用,在程序打包發行時,ucd是外置的外部文件,必須將要使用到的ucd文件復制在程序同一目錄下運行。
操作步驟:
1、首先在流程線上放置一計算圖標,里面寫上以下內容(--后面內容作說明):
w:=geticonproperty(@"cdrom", #videowidth)--用來檢測gif圖像的寬度
h:=geticonproperty(@"cdrom", #videoheight)--用于檢測gif圖像的高度
resizewindow(w,h)--設定顯示窗口的大小(和gif圖像一樣大小)
x:=screenwidth--利用altools.u32的alchangeres函數里面的screenwidth變量計算屏幕的寬度。
y:=screenheight--利用altools.u32的alchangeres函數里面的screenheight變量計算屏幕的高度
movewindow(y-w-20,x-h-10)--定位顯示窗口放置位置,+-的數字是用來做小位置調整(見圖19)。
加載ucd先點擊工具條上面的函數小圖標,在“category”屬性里面選現在制作的a6p文件,點擊“load...”按鈕,選擇要裝載的ucd,這是會出現相關的ucd的屬性,在這程序中選擇裝載“altool.u32”的“alchangeres”函數和“a5wmme.u32”的“cdretract()”和“cdeject()”函數。
雖然altools.u32里面的alchangeres函數沒有直接使用,但使用了它里面的2個變量screenwidth和screenheight,所以運行時要有這ucd 支持。
2、選擇在主菜單的“insert”的“tabuleiro xtras”里面的“directmediaxeras”,在流程線上出現一個插件圖形,改名字為“cdrom”,用它作cdrom開關的圖形顯示,筆者現在使用的這個directmediaxeras是2.0版本。在這圖標的“display”屬性里面mode(模式)選擇“transparent”透明效果。
3、在圖標屬性里面點擊“options...”打開“directmediaxeras”屬性設置。(見圖20)
在“digital video file”里面瀏覽文件并作選定,directmediaxeras本身系統說明支持mpeg, avi, quicktime, wav, aif, mp2和midi文件,如果系統安裝了windows media player,你還可以打開asf、 wmv、 wma等流媒體格式文件,但實際上它還支持動態gif、jpg、bmp等一部分的圖像文件,筆者就是利用它來打開一幅動態gif圖片的。要打開的gif圖片運行一遍的時間為2900ms(毫秒),其中0-1900ms段為打開部分,1900-2900ms段為關閉cdrom圖像段。其他的設定按省缺值。
4、在流程線上放置一計算圖標“close_gif”,寫上:
callsprite(@"cdrom",#videoplaysegment, 0,1900)--設定配合關閉cdrom設定gif圖像的片段
程序運行時,先關閉cdrom,這0-1900ms便是關閉的過程。
由于關閉是利用第三方的ucd文件a5wmme.u32里面的函數,它不是直接開關cdrom的函數,它關閉有一個短時間過渡,所以在流程線下還加一個計算圖標,設定等待1秒。
5、流程線加一計算圖標“clolse_rom”,寫上:
cdretract()--利用a5wmme的函數關閉cdrom
a5wmme.u32的函數cdretract()和cdeject(),是可以用來關閉和開啟cdrom的。
a5wmme.u32包含的自定義函數實現以下幾種媒體格式文件的控制:動畫文件(*.mmm)、cd音樂、mci(媒體控制接口) 調用、midi音樂、wav文件。在這里只使用開關光驅的2個函數。
6、在流程線下拖放進一交互圖標“開關”,在下面繼續放進2個群組圖標和一個計算圖標。這3個圖標都設定為“hot object”熱對象交互,并且熱對象都是圖標“cdrom”。對于將xtras控件作為熱對象,你只要一運行,它自動會提示你選擇熱對象,這時你調整畫面點擊準備運行的xtras,就可以選擇好熱對象了。前2個群組圖標的交互響應屬性設定基本相同,在“match”屬性選擇“single-click”,在“cursor”里面選擇你需要的光標指針,以便在單擊時明顯表現出變化。(見插圖2-4)
在“response”屬性里面,“scope”不用點選“perpetual”,“erase”選“after next entry”,“branch”選擇“try again”。
這2個群組圖標“開”和“關”,關鍵在于設定響應交互的激活。“開”圖標在“active if”設定“b=0”,“關”圖標設定為“b=1”,初始值設定為0。群組圖標下層設置為2個計算及中間一個等待圖標(作用同步驟4),“開”群組第一個計算圖標寫上:
callsprite(@"cdrom",#videoplaysegment, 1900, 3200)--運行gif圖形"cdrom"的1900-3200ms段內容(打開光驅動態過程)
第二個計算圖標寫上:
cdeject()--打開光驅
b:=1
“關”群組第一個計算圖標寫上:
callsprite(@"cdrom",#videoplaysegment, 0, 1900)--運行gif圖形"cdrom"的0-1900ms段內容(關閉光驅動態過程)
第二個計算圖標寫上:
cdretract()--關閉光驅
b:=0
點擊的熱對象就只有一個,這2個計算圖標與響應條件相配合,使到點擊變換執行開關命令,這是設計技巧關鍵所在。
右邊的計算圖標,它響應“double-click”,里面寫上退出程序函數:quit()。由于前2個交互執行的前效性,它實際是沒效果的,所以要使用一個快捷鍵“esc”退出程序,由于執行窗口小,不適用其他方法退出。主流程線見圖21)
程序關鍵在于通過賦予變量b的變化和擊活響應的條件來達到設計的目的。 實例3、聲音和視頻對象播放的方法和技巧
實例說明:
在一屏內,理論上可以將authorware所有可以處理(間接或直接的)類型的多媒體對象全部演示。由于各種對象運行消耗大量系統資源,在使用時要注意一定的方法和技巧,在實際應用中,多種媒體一起同時使用還是比較少見的。
新聞熱點
疑難解答