[前言] authorware是專業(yè)的多媒體制作利器,但是,它也有許多先天的不足,其中之一就是原創(chuàng)性太少,大多數(shù)的素材需要借助其它軟件的前期處理。有點(diǎn)厭倦了頻繁地調(diào)用,就想折騰點(diǎn)名堂出來(lái)。想到“它山之石可以攻玉”的古訓(xùn),所以,參考其它編程語(yǔ)言,開(kāi)始了一系列移花接木(包括屏保、進(jìn)度條、鼠標(biāo)跟隨等)。
[思路來(lái)源] vb中有許多夢(mèng)幻色彩的屏幕保護(hù)程序,如雨、雪、星空、變幻線等。他們個(gè)頭不大,載入時(shí)間很短,完全可以由authorware直接調(diào)用。如果誰(shuí)想在authorware中開(kāi)發(fā)這樣的屏幕保護(hù),那就先做好熬三天三夜的思想準(zhǔn)備吧!
[實(shí)現(xiàn)步驟]
包括三個(gè)部分:1、在authorware中制作屏幕保護(hù)程序框架;2、在vb中制作屏幕保護(hù)內(nèi)容;3、整合。
<一> authorware中的屏幕保護(hù)框架
可以參考authorware自帶的show me程序----“ssaver.a6p”。
說(shuō)明一下屏保變量和函數(shù):timeoutlimit、timeoutgoto()。前者設(shè)置屏保等待時(shí)間,后者實(shí)時(shí)記錄流逝時(shí)間,時(shí)間一到就進(jìn)入屏保模塊。兩者必須配合使用,缺一不可!
1、 加入計(jì)算圖標(biāo)“3--限時(shí)”,程序如下:
--------本程序設(shè)置等待時(shí)間,可以通過(guò)改動(dòng)該計(jì)算圖標(biāo)名稱前的數(shù)字改動(dòng)等待時(shí)間
--------并記錄流逝時(shí)間
timeout:=getnumber(1,icontitle)
timeoutlimit:=timeout
timeoutgoto(iconid@"屏保")
2、 加入交互圖標(biāo)“控制”,.下掛一個(gè)計(jì)算圖標(biāo)“屏保”,設(shè)為熱區(qū)交互,大小位置均設(shè)置為0(無(wú)需真正的熱區(qū)交互,只是提供了一個(gè)入口)。
(1) 計(jì)算圖標(biāo)“屏保”內(nèi)的程序如下:
--------跳轉(zhuǎn)調(diào)用外部vb屏保程序
jumpoutreturn("scrsaver.exe")
--------1 在ssaver.a6p中,屏保模塊出口還有一個(gè)“reset”計(jì)算圖標(biāo),
-------- 它使程序從屏保中退出后,重新調(diào)用:
-------- timeoutlimit:=timeout
-------- timeoutgoto(iconid@"屏保")
-------- 從而再次激活屏保,程序在靜靜地等待下一次的被喚醒。
--------2 這在該演示程序中是合理的(內(nèi)部跳轉(zhuǎn))。但是對(duì)于本程序卻不僅不適用,反而是致命的:
-------- 因?yàn)檎{(diào)用外部程序后,盡管主程序在后臺(tái),卻并沒(méi)有停止過(guò)運(yùn)行。那么,頻繁調(diào)用上述程序
-------- 的直接結(jié)果就是外部屏保程序的不斷運(yùn)行,可想而知,系統(tǒng)終將不堪承受而崩潰!!!
--------3 所以,針對(duì)本程序,不能在進(jìn)入屏保后還執(zhí)行那兩個(gè)“難兄難弟” 變量和函數(shù)。
--------4 另外,重新回到主程序后,應(yīng)當(dāng)再次激活屏保。可能大家立刻就會(huì)想到用api函數(shù)來(lái)獲取
-------- 當(dāng)前窗口句柄。我當(dāng)時(shí)也這樣費(fèi)了好大一番周折。可是,最后程序中,只要你“click”
-------- 一下主程序屏幕,一切就“ok”了,怎么樣,夠簡(jiǎn)單吧!
-------- 要知秘訣,請(qǐng)繼續(xù)向下看。
(2) 加入一個(gè)計(jì)算圖標(biāo)在計(jì)算圖標(biāo)“屏保”右側(cè),永久條件交互:mousedown。
程序如下:
timeoutlimit:=timeout
timeoutgoto(iconid@"屏保")
--------這下明白了吧,點(diǎn)擊屏幕后,再次執(zhí)行那兩個(gè)“難兄難弟” 變量和函數(shù),
--------從而激活了屏保,靜靜地等待下一次的被喚醒。
3、 加入一個(gè)框架結(jié)構(gòu),作為主程序。作為演示,筆者在入口設(shè)置了一個(gè)退出按鈕和三個(gè)導(dǎo)航按鈕,導(dǎo)航方向?yàn)榭蚣芙Y(jié)構(gòu)下的三個(gè)組圖標(biāo)。實(shí)際應(yīng)用中,可以在這些組圖標(biāo)中添加主程序。第一個(gè)空組圖標(biāo)只是為了防止程序立刻進(jìn)入第一個(gè)分支,這種辦法經(jīng)常用到。
4、 其它細(xì)節(jié)請(qǐng)參考源程序(下載)。
<二> vb中的屏幕保護(hù)程序
引用自網(wǎng)絡(luò),作者佚名,筆者二次加工。
程序包含一個(gè)form、一個(gè)picturebox、一個(gè)label、兩個(gè)timer。
程序效果是滿天彩球拖著尾巴向下墜落,左上角是本工作室的信息在移動(dòng)。
1、 程序略(感興趣的朋友可以與我聯(lián)系);
2、編譯成exe文件“scrsaver.exe”。
<三> 整合
將“scrsaver.exe”放置在authorware的屏保程序的同級(jí)目錄下。
[執(zhí)行效果]
在authorware中執(zhí)行程序后,.等待3秒鐘,進(jìn)入屏保,為滿天彩球拖著尾巴向下墜落,左上角是本工作室的信息在移動(dòng)。
移動(dòng)或點(diǎn)擊鼠標(biāo)可退出屏保并返回authorware程序,點(diǎn)擊屏幕可以再次激活屏幕保護(hù)。
新聞熱點(diǎn)
疑難解答