耿英保+胡繼禮+譚紅春+谷宗運
摘要:在信息化時代的今天,計算機利用率可謂是有增無減,由此就會延伸到如何更好地保護計算機以延長計算機的使用壽命,那么首當其沖的便是屏幕保護程序。屏幕保護程序不僅可以保護顯示器,延長顯示器的使用壽命,還可以保護個人隱私并且進行信息的交流與推廣。屏幕保護程序是在windows操作系統(tǒng)下開發(fā)出來的,主要是采用的是html5技術(shù)和JS技術(shù),然后在頁面上表現(xiàn)出來的一種小巧但是有趣的屏幕保護程序。并且伴隨著用戶需求的不斷提高,本軟件還可升級、移植、繼續(xù)開發(fā),以滿足用戶的多種需要。
關(guān)鍵詞:圖片碰撞;超文本標記語言;JavaScript
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)26-0079-03
1 功能需求
根據(jù)屏幕保護功能的分析,要求該程序應該安裝簡潔無贅余,并且不耗電,不存在攜帶具有危險性的軟件。最重要的是可以利用圖片,影視頻進行信息的推送。
2 設(shè)計步驟
2.1 程序模塊總體設(shè)計
根據(jù)需求分析和用戶的實際需求,得出程序的主要功能模塊有:重新演示模塊、停止演示模塊、更換背景模塊。重新演示模塊即是圖片開始運動,是圖片運動的全部過程;停止演示模塊,顧名思義就是圖片停止運動,在我們開始使用計算機時就可以點擊這個按鈕;更換背景模塊就是更換圖片運動的背景圖片。
2.2 程序結(jié)構(gòu)設(shè)計
程序模塊化的設(shè)計是根據(jù)順序從上到下,去將一個復雜的問題化繁為簡,由一層的軟件系統(tǒng)模塊的過程分為多個層次,每個模塊完成后,所有的功能模塊和整個系統(tǒng)的全部功能整合到一起,形成一個完整的軟件,軟件通過模塊化的思想來使有個復雜的軟件系統(tǒng)簡單化,并且使得系統(tǒng)更容易被維護,對于軟件開發(fā)者來說,更是提高了軟件的可讀性,加快了軟件開發(fā)地效率,降低了開發(fā)地成本。
3 程序的實現(xiàn)
3.1 編寫所需要的工具
在對圖片碰撞屏保程序的編寫中主要利用EditPlus文字編輯器,它是一個非常好用的HTML編輯器,在EditPlus中設(shè)計網(wǎng)頁和編輯一個文檔沒什么兩樣。單擊”File””New””HTMLPage”,就可以直接打開HTML頁面編輯器窗口,使用它所提供的工具就可以直接進行網(wǎng)頁的編輯。如下圖:
3.2 JavaScript簡介
JS是運行在客戶端的腳本語言,主要目的是為了降低對服務(wù)器端的依賴,簡單的處理可以直接在客戶端進行驗證完成。它的本質(zhì)是一種腳本語言,其源代碼在發(fā)往客戶端運行之前不需經(jīng)過編譯,是將文本格式的字符代碼發(fā)送給瀏覽器由瀏覽器解釋運行。[3]
本文還利用到了HTML5,HTML5是跨平臺的,不需要一定運行Windows或者Mac OS X或者Linux或者Multics或者其他任何特定的操作系統(tǒng),即可享受HTML5的優(yōu)勢,唯一需要的就是一個現(xiàn)代的瀏覽器。[4]其中每一個HTML文檔都必須以doctype元素開頭,瀏覽器據(jù)此得知自己將要處理的是HTML內(nèi)容,即使省略doctype元素,大多數(shù)瀏覽器仍能正確顯示文檔內(nèi)容,只不過依賴瀏覽器的這種表現(xiàn)不是好習慣。[4]
3.3 網(wǎng)頁與Javascript相連
在實際編程過程中,除了對語言的掌握,還要了解如何聯(lián)合網(wǎng)頁,一般有如下兩種方法:
1) 直接加入HTML文檔
2) 引用方式
我們?nèi)绻胩嵘聊槐Wo程序中代碼的利用率,那就可以采用一種簡單而有效的方式,那就是在已經(jīng)存在JS的頭文件中使用。基本格式如下:
上述語句中的url就是我們編寫的程序文件的地址,相同道理的,像上文如此的語句可以放在HTML文檔頭部或主體的任何部分。
3.4 圖片運動實現(xiàn)
JavaScript由非常強大的對象字面量表示法,通過列出對象的組成部分,它們就能簡單地被創(chuàng)建出來。[5-6]
1) 6個圖片就是6個ball;
2) 碰屏幕邊界反彈功能的設(shè)置,我們可以定義兩個參數(shù)變量,分別為vx、 vy;除此以外,我們還要設(shè)置一個彈力變量,可以用bounce表示,而且它是一個負值。我們可以運用這幾個參數(shù)來實現(xiàn)圖片移動方向的改變。例如,當圖片碰到屏幕邊界時,我們可以將vx 、vy分別乘以彈力變量bounce,這樣我們就可以改變圖片的運動方向了;
3) 這篇代碼最有價值的地方就是如何實現(xiàn)圖片相碰后即刻反彈開來。在這個部分,我們要設(shè)置一個變量用來表示兩個圖片的圓心距離,可以用dist這個字母表示。圖片相撞反彈原理可以簡單點地用代碼來表示,就是說,在 dist小于兩個圖片半徑之和的時候,程序會令圖片改變原先的運動方向,這樣就實現(xiàn)了反彈;
4) 屏幕保護程序中需要一個Screen類,在這個類的構(gòu)造函數(shù)中中我們可以解決小圖片在移動、碰撞的時候需要的各種參數(shù),例如ballsnum、spring、bounce、gravity、diameter等;然后我們可以再用之前定義的原型,prototype給出所需要的相應的函數(shù),例如有創(chuàng)建圖片的函數(shù),我們可以用creatBalls表示;有圖片碰撞的函數(shù),用hitBalls這個單詞來表示;有圖片移動的函數(shù),用一個簡單的單詞move來表示。最后的最后我們只需要給每個函數(shù)再添加一些它們必需的相應的功能,然后就可以實現(xiàn)圖片的各種運動了。
本程序使用的是直接將Javascript插入HTML中,基本過程如下:首先要將圖片的各種屬性,比如圖片的直徑、重力等進行賦值以及申明,接著點擊重新演示,圖片開始運動,接著偵查圖片是否碰到圖片或者是墻壁(圖片發(fā)生反彈)。點擊停止檢測,圖片運動就會停止。點擊更換背景,屏保就會更換原先已經(jīng)保存好的背景。主要代碼如下:endprint
3.4.1 圖片初始位置
以下代碼是對圖片的初始位置進行定義:首先創(chuàng)建圖片creatBalls的函數(shù),然后在函數(shù)里給定各種圖片運動、碰撞所用到的屬性變量。
3.4.2 圖片運動
以下代碼是對圖片運動的編寫:首先創(chuàng)建圖片移動move的函數(shù),然后是檢測圖片是否和壁碰撞,選擇是反彈還是繼續(xù)運動的代碼。
3.4.3 檢測是否碰撞
以下代碼是對圖片碰撞的編寫:首先創(chuàng)建圖片碰撞的函數(shù)hitTest,然后根據(jù)兩圖片圓心距的長度來實現(xiàn)圖片的碰撞反彈,具體代碼如下:
3.5 停止檢測
點擊按鈕“停止檢測”則圖片運動就會停止,代碼如下:
3.6 更換背景圖片
將事先準備好的圖片進行調(diào)用更改,后期可以根據(jù)用戶的需求添加更多種類的圖片,十分個性化。
4 結(jié)束語
屏保程序的信息推送使屏幕保護程序不再是一個狹隘的概念了,以后屏保程序會在計算機空閑的時間處理一系列任務(wù)。我們還可以將這個功能用一個代號表示,我們可以叫他為“空閑時間任務(wù)處理機”。[9]當我們的電腦處于長時間不操作的狀態(tài)或者我們自己人為決定將計算機進入休閑狀態(tài)的時候,我們的計算機就可以開始運行一連串之前指定它處理的任務(wù),我認為以下幾個功能是非常有意義的:
1) 進入低功耗狀態(tài),休眠顯示器、休眠顯示卡、降低CPU的速度(甚至當溫度降低到一定程度之后停止風扇)。
2) 執(zhí)行自維護任務(wù)。在自身設(shè)備休眠狀態(tài)的時候,設(shè)備還可以同時進行各種任務(wù)。例如:殺毒、整理碎片、備份數(shù)據(jù)、升級驅(qū)動程序、同步Internet時間等。
3) 值班功能。在這個功能下,設(shè)備可以主動維持當前狀態(tài),簡單點說就是即使在設(shè)備因為意外情況關(guān)機的時候,再重新啟動的時候,設(shè)備也可以恢復之前沒有關(guān)閉的頁面。但是這個功能需要在線USB的支持,同時,這個功能對于公司的突發(fā)狀況有很好的應對方案。
4) 資源遠距離共享。當我們的設(shè)備進入空閑狀態(tài)的時候,在設(shè)備所有者允許的情況下,計算機可以將本身的一些運算、內(nèi)存資源用安全的方式遠程提供給其他有需要的用戶。有需要的用戶就可以大量利用網(wǎng)絡(luò)上的這種資源進行計算以實現(xiàn)資源的最大化的利用率。這種資源共享方式不僅可以使經(jīng)費有所拮據(jù)的各種科研機構(gòu)得到強大運算能力,而且在設(shè)備相對落后的地區(qū)也有機會完成他自身的系統(tǒng)無法完成的處理任務(wù)。[10]
參考文獻:
[1] 許寶卉.顯示器色彩特性分析及色彩空間轉(zhuǎn)換技術(shù)研究[D]. 西安:西安理工大學,2010.
[2] 鄧小鵬,邢春曉,蔡蓮紅.Web應用測試技術(shù)進展[J].計算機研究與發(fā)展,2007(8).
[3] 葉明全.數(shù)據(jù)庫技術(shù)與應用[M].安徽大學出版社,2013(8).
[4] 皮爾格林.HTML5揭秘[M]. 北京:電子工業(yè)出版社,2010(12).
[5] Adam Freeman.HTML5權(quán)威指南[M].北京:人民郵電出版社,2014.
[6] 鐘萬勰,張柔雷,孫蘇明.參數(shù)二次規(guī)劃法在計算力學中的應用(三)[J].計算結(jié)構(gòu)力學及其應用,1989(2).
[7] 道格拉斯·克羅克福德.JavaScript語言精粹[M].北京:電子工業(yè)出版社,2012.
[8] ROM Patton.軟件測試[M]. 北京:機械工業(yè)出版社,2006.
[9] 董國平,陳艷華.信息系統(tǒng)開發(fā)實例精粹[M]. 北京:電子工業(yè)出版社,2006.
[10] 賈寶翠,王洪利.屏幕保護程序[J].科技傳播,2011(12).endprint