肖 洋 何 斌 李軍峰
(91404部隊(duì)評(píng)測(cè)中心,河北 秦皇島 066000)
基于Flash AS3和XML實(shí)現(xiàn)的圖書(shū)館管理系統(tǒng)
肖 洋 何 斌 李軍峰
(91404部隊(duì)評(píng)測(cè)中心,河北 秦皇島 066000)
該系統(tǒng)采用Flash AS3開(kāi)發(fā),專(zhuān)為觸摸屏設(shè)計(jì)的一款新型圖書(shū)館管理系統(tǒng),功能全面,采用XML作為數(shù)據(jù)庫(kù)后臺(tái),實(shí)現(xiàn)系統(tǒng)的跨平臺(tái)性,利用JS使得系統(tǒng)脫離Flash沙盒,以達(dá)到修改數(shù)據(jù)的目的,具有很好的應(yīng)用價(jià)值。
AS3;Flash;XML;JS;跨平臺(tái)
目前,基于RIA的Web應(yīng)用的越來(lái)越多,本文采用RIA中最具影響力的Flash AS3作為主要開(kāi)發(fā)語(yǔ)言,設(shè)計(jì)并實(shí)現(xiàn)了一種適用于各類(lèi)觸摸屏、操作更加快捷、美觀的圖書(shū)館管理系統(tǒng)。
AS3全稱Action Script3,是快速構(gòu)建豐富互聯(lián)網(wǎng)程序(RIA)的理想語(yǔ)言。在其上構(gòu)建的Flash Player程序或者AIR程序,都真正支持跨系統(tǒng)應(yīng)用,已經(jīng)毫無(wú)疑問(wèn)地成為目前和下一代因特網(wǎng)應(yīng)用程序編程語(yǔ)言的主流[1]。
AS3支持先進(jìn)的ECMA Script for XML(E4X),使得XML就像AS3語(yǔ)言的一種內(nèi)建數(shù)據(jù)類(lèi)型一樣,處理自然簡(jiǎn)單,成倍降低所需要的代碼數(shù)量,顯著提高了程序運(yùn)行效率[2]。因此,本文在數(shù)據(jù)庫(kù)設(shè)計(jì)上并沒(méi)有采用傳統(tǒng)的SQL、Oracle等來(lái)存儲(chǔ)數(shù)據(jù),而是采用XML來(lái)實(shí)現(xiàn)各類(lèi)數(shù)據(jù)的存儲(chǔ),已實(shí)現(xiàn)跨平臺(tái)和操作快捷。
本文設(shè)計(jì)的圖書(shū)館運(yùn)行在Web框架內(nèi),主要實(shí)現(xiàn)了圖書(shū)瀏覽、圖書(shū)借閱、圖書(shū)歸還、圖書(shū)搜索、借閱記錄等五大功能,由于Flash出于安全沙盒的考慮,AS3不具備直接修改數(shù)據(jù)的功能,只有通過(guò)JS等第三方語(yǔ)言來(lái)實(shí)現(xiàn)數(shù)據(jù)的更改,因此,圖書(shū)借閱、圖書(shū)歸還兩個(gè)模塊涉及到數(shù)據(jù)的修改,需要調(diào)用Web中JS函數(shù)XMLModify,其余模塊只是涉及數(shù)據(jù)的讀取。其中,總體功能設(shè)計(jì)框圖如圖1所示。
在圖書(shū)館的主界面上,主要顯示圖書(shū)瀏覽、圖書(shū)搜索、借閱記錄三個(gè)模塊,可以按定制的分類(lèi)瀏覽或者搜索。用戶點(diǎn)擊某一本書(shū)后,進(jìn)入該書(shū)的簡(jiǎn)介,內(nèi)容包括書(shū)籍作者、出版社、借閱狀態(tài)、內(nèi)容簡(jiǎn)介等,如果借閱狀態(tài)為可借,用戶可以選擇借閱該書(shū),則跳至借閱功能模塊,輸入用戶名、密碼等信息,完成借閱。在圖書(shū)搜索和借閱記錄中,用戶選擇自己所借的圖書(shū)后,通過(guò)還書(shū)按鈕跳入圖書(shū)歸還模塊,輸入密碼等信息完成圖書(shū)的歸還。
圖1 功能設(shè)計(jì)圖
圖書(shū)瀏覽、圖書(shū)搜索、借閱記錄三個(gè)模塊的實(shí)現(xiàn),主要包括各類(lèi)XML數(shù)據(jù)文件的讀取,構(gòu)建AS3公共函數(shù)XMLRead(XMLstr:String),主要代碼如下:
//加載外部xml
xml.ignoreWhite=true;
System.useCodePage=true;
var XML_URL:String=XMLstr;
var myXMLURL:URLRequest=new URLRequest(XML_URL);
Bagging算法是通過(guò)引導(dǎo)程序使用一個(gè)訓(xùn)練集的多個(gè)版本,即放回抽樣,多每一個(gè)數(shù)據(jù)集都來(lái)訓(xùn)練一個(gè)不同的模型,在對(duì)訓(xùn)練模型通過(guò)整合輸出形成一個(gè)最終的預(yù)測(cè)結(jié)果?;舅惴ㄈ缦?。
var myLoader:URLLoader=new URLLoader(myXMLURL);
通過(guò)時(shí)間軸上標(biāo)記的按鈕圖元實(shí)例化讀取的各個(gè)書(shū)籍?dāng)?shù)據(jù),其中使用了Tweener.as作為書(shū)籍按鈕的效果美化文件類(lèi),當(dāng)滑動(dòng)到某本書(shū)時(shí),書(shū)籍作被抽出來(lái)的動(dòng)作,書(shū)籍下方用不同的標(biāo)志標(biāo)識(shí)該書(shū)借閱狀態(tài),例如用紅色人形標(biāo)志表明書(shū)籍已被借完,處于無(wú)法借閱狀態(tài),如圖2所示。此時(shí)如果做點(diǎn)擊動(dòng)作,則跳入該書(shū)的簡(jiǎn)介界面,如果該書(shū)還可以借閱,則會(huì)出現(xiàn)右側(cè)的“借閱該書(shū)”按鈕,否則只有“返回”按鈕,如圖3所示。點(diǎn)擊“借閱該書(shū)”按鈕進(jìn)入圖書(shū)借閱模塊。
圖2 圖書(shū)瀏覽效果圖
圖3 圖書(shū)簡(jiǎn)介效果圖
圖書(shū)搜索和借閱記錄在本系統(tǒng)中主要設(shè)計(jì)為列表形式顯示相關(guān)信息,采用FlashCS4集成組件DataGrid實(shí)現(xiàn)。
在圖書(shū)借閱和圖書(shū)歸還模塊中,主要涉及到與 JS交互的問(wèn)題,在AS3中需要將要被修改的信息如書(shū)名、書(shū)籍類(lèi)型、用戶名、書(shū)籍狀態(tài)、書(shū)籍余量等信息發(fā)送至JS中,其主要代碼如下:
function modify(book_name:String,book_list:String,
book_state:String,borrower:String.....):void {
if (ExternalInterface.available) {
try {
Flash所嵌入的 Web網(wǎng)頁(yè)中,在 JS代碼中設(shè)計(jì)了函數(shù)XMLModify,接收Flash所傳遞出的值,其中主要代碼如下:function XMLModify (book_name:String,book_list:String,
book_state:String,borrower:String.....){
//讀取外部XML文件
foreach(XmlNode xn in nodeList){
XmlElement xe =(XmlElement)xn;
......
xmlDoc.Save(book_list.xml);
XML數(shù)據(jù)文件在本系統(tǒng)中是按照書(shū)籍類(lèi)別來(lái)區(qū)別,比如軟件測(cè)試、軟件編程等,以 softwaretesting_list.xml、comlanguage_list.xml等來(lái)區(qū)別,每個(gè)XML文件子項(xiàng)中都包含了書(shū)名、作者、借閱狀態(tài)、借閱人、借閱時(shí)間等信息。
通過(guò)FlashAS3和XML的結(jié)合,嵌入到Web中實(shí)現(xiàn)了一種新型的圖書(shū)館管理系統(tǒng),滿足各類(lèi)中小圖書(shū)館的日常需求,和傳統(tǒng)圖書(shū)館的管理系統(tǒng)相比,它的各種觸摸設(shè)計(jì)與用戶的交互性更強(qiáng)、更快捷。
[1] 孫穎.Flash ActionScript3殿堂之路[M].北京:機(jī)械工業(yè)出版社,2007.8.
[2] 蔡朝暉.Flash CS3商業(yè)應(yīng)用實(shí)戰(zhàn)[M].北京:清華大學(xué)出版社,2008.1.
Library management system based on XML and Flash AS3
The system is a new library management system using flash AS3 to develop, specially designed for touch screen, it was comprehensive functions, using XML database as background, cross-platform of the system was realized, to achieve the objective of modifying data, using JS made the system break away from the Flash sandbox, so it is very good value.
AS3;Flash;XML;JS;cross-platform
TP317
A
1008-1151(2012)06-0076-02
2012-05-07
肖洋,供職于91404部隊(duì)評(píng)測(cè)中心。