項(xiàng) 潔,姜華強(qiáng),周燕君
(杭州師范大學(xué)杭州國(guó)際服務(wù)工程學(xué)院,浙江 杭州 310012)
基于JSFL的Flash作品自動(dòng)評(píng)價(jià)技術(shù)
項(xiàng) 潔,姜華強(qiáng),周燕君
(杭州師范大學(xué)杭州國(guó)際服務(wù)工程學(xué)院,浙江 杭州 310012)
文章介紹了使用JSFL腳本實(shí)現(xiàn)Flash作品自動(dòng)評(píng)價(jià)的技術(shù),并就評(píng)價(jià)過(guò)程中提高文檔識(shí)別率提出了間接分析、實(shí)例采樣、正則表達(dá)式等方法.實(shí)踐證明,此類技術(shù)方法的使用,不僅簡(jiǎn)化了Flash作品自動(dòng)評(píng)價(jià)的實(shí)現(xiàn)過(guò)程,還提高了作品評(píng)價(jià)的準(zhǔn)確性,具有一定的實(shí)際應(yīng)用價(jià)值.
Flash;JSFL;Flash DOM;自動(dòng)評(píng)價(jià)
隨著多媒體技術(shù)的發(fā)展,多媒體技術(shù)的教育也逐漸成為國(guó)內(nèi)外教學(xué)的主要內(nèi)容.Flash作為集向量繪圖、動(dòng)畫(huà)制作、多媒體動(dòng)畫(huà)三大功能于一體的網(wǎng)絡(luò)動(dòng)畫(huà)制作軟件,因其文件小、傳輸快、多媒體、交互性強(qiáng)等特性,正被廣泛應(yīng)用于美術(shù)設(shè)計(jì)、網(wǎng)頁(yè)制作、多媒體軟件以及教學(xué)課件制作等多個(gè)領(lǐng)域,其在多媒體技術(shù)的教育中也占了一席重要之地.
與傳統(tǒng)的計(jì)算機(jī)應(yīng)用技術(shù)課類似,以Flash為代表的多媒體技術(shù)課也是一門強(qiáng)調(diào)實(shí)踐應(yīng)用的課程,同時(shí)它又兼具對(duì)作品的藝術(shù)性要求,因此如何盡可能避免作品評(píng)價(jià)過(guò)程中的主觀性,對(duì)學(xué)生的Flash作品進(jìn)行公正、合理、高效的評(píng)價(jià)是多媒體教學(xué)及計(jì)算機(jī)自動(dòng)評(píng)價(jià)領(lǐng)域亟待解決的問(wèn)題.
目前,對(duì)于Flash作品進(jìn)行計(jì)算機(jī)自動(dòng)評(píng)價(jià),主要有3種方案:一種是分析SWF文件格式以逆向工程的方式進(jìn)行,一種是利用數(shù)字圖像處理及模式識(shí)別的方法,另一種是在Flash設(shè)計(jì)環(huán)境下通過(guò)運(yùn)行JSFL腳本來(lái)對(duì)FLA文件進(jìn)行模糊批閱.第一種方法不僅工作量巨大,而且由于商業(yè)因素,不可能完全逆向;第二種方法需要將Flash的每一幀截圖存為BMP或JPEG格式,然后進(jìn)行識(shí)別,效率太低;第三種方法,即利用JSFL腳本讀取Flash對(duì)象的屬性和標(biāo)準(zhǔn)答案比對(duì),從而實(shí)現(xiàn)快速閱卷.這種方法開(kāi)發(fā)難度低、效率高,可以大大縮短開(kāi)發(fā)周期[1].在此將第三種方法的實(shí)現(xiàn)及其在Flash作品評(píng)價(jià)過(guò)程中提高文檔識(shí)別率的幾種方法進(jìn)行闡述.
Flash提供了兩種形式的腳本,一種是編譯后的SWF文件運(yùn)行在Adobe Flash Player中執(zhí)行的腳本,即AS(Action Script).另一種即在Flash作品評(píng)價(jià)中要用到的JSAPI(Java Script Application Programming Interface),它是Flash提供的基于Flash文檔對(duì)象模型(DOM)的應(yīng)用程序編程接口,運(yùn)行在Flash編輯環(huán)境中,允許用戶以對(duì)象訪問(wèn)的方式對(duì)Flash文檔進(jìn)行編程開(kāi)發(fā),其對(duì)應(yīng)的腳本語(yǔ)言即JSFL.利用JSFL可以設(shè)置對(duì)象的屬性,自動(dòng)執(zhí)行重復(fù)性任務(wù),提高創(chuàng)作效率[1].
JSFL腳本最大的特點(diǎn)是簡(jiǎn)單易學(xué),一方面它與AS類似,關(guān)鍵字、語(yǔ)法、結(jié)構(gòu)都是統(tǒng)一遵循ECMA Script標(biāo)準(zhǔn),有AS經(jīng)驗(yàn)的開(kāi)發(fā)者對(duì)于JSFL極易上手;另一方面,F(xiàn)lash自帶的歷史記錄提供了很好的智能輔助,基于UI的操作在歷史記錄中都能找到相應(yīng)JSFL腳本.換言之,在用JSFL腳本進(jìn)行編程開(kāi)發(fā)的時(shí)候,常用的基本命令可以通過(guò)可視化界面來(lái)完成,然后在其生成的代碼中插入自定義的控制語(yǔ)句即可快速生成新的應(yīng)用擴(kuò)展.
JSFL腳本文件是以.jsfl為擴(kuò)展名的jsfl命令集合,可用Flash或其他文本編輯器來(lái)編寫(xiě),生成的文件存儲(chǔ)于flash的Commands文件夾中即可被flash識(shí)別并用于功能擴(kuò)展.對(duì)于不同版本的flash,其對(duì)應(yīng)的Commands目錄所在的路徑略有不同,如Flash 8版本的Commands路徑為C:Documents and Settings用戶Local SettingsApplication DataMacromediaFlash 8語(yǔ)言ConfigurationCommands而Flash CS3對(duì)應(yīng)的Commands路徑為C:Documents and Settings用戶Local SettingsApplication DataAdobeFlash CS3語(yǔ)言ConfigurationCommands,具體可參見(jiàn)聯(lián)機(jī)幫助.
2.1 Flash DOM
圖1 Flas8.0 DOM摘要Fig. 1 Abstract of Flas8.0 DOM
Flash DOM即Flash文檔對(duì)象模型,包含了一組頂級(jí)函數(shù),并以對(duì)象樹(shù)的形式提供了Flash文檔元素的訪問(wèn)接口,如圖1所示.
其中flash對(duì)象是整個(gè)DOM的頂層對(duì)象,代表flash應(yīng)用程序,腳本代碼中用flash或fl來(lái)表示.Document為flash的子對(duì)象,表示文檔.每個(gè)Document對(duì)象代表了flash文件包含的大部分元素,所以DOM里很大一部分是Document對(duì)象的子對(duì)象和屬性.可以通過(guò)頂級(jí)flash對(duì)象的documents屬性得到一個(gè)已經(jīng)打開(kāi)的文檔數(shù)組,使用fl.documents[index]來(lái)得到指定的文檔,使用fl.getDocumentDOM()獲取當(dāng)前文檔.對(duì)于Document的子對(duì)象,可以通過(guò)其相應(yīng)的屬性得到,比如Document對(duì)象的屬性library幫助得到library子對(duì)象,代碼如下:fl.getDocumentDOM().library.
Timeline對(duì)象表示flash里面的時(shí)間軸,用于組織和控制文檔內(nèi)容在一定時(shí)間內(nèi)播放的圖層數(shù)和幀數(shù),是flash文件的重要元素.其下包含圖層對(duì)象(Layer)和幀對(duì)象(Frame).可通過(guò)使用Document對(duì)象的getTimeline()方法或timelines數(shù)組獲取時(shí)間軸對(duì)象.如假設(shè)當(dāng)前時(shí)間軸為文檔中的第一個(gè)時(shí)間軸,則可用fl.getDocumentDOM().getTimeline()或fl.getDocumentDOM().timelines[0]兩種方法之一獲取當(dāng)前時(shí)間軸.
Frame對(duì)象是flash文件中另一個(gè)重要對(duì)象,表示圖層中的幀.
Element對(duì)象,即元素對(duì)象,出現(xiàn)在舞臺(tái)上所有對(duì)象都是Element類型,該對(duì)象存在Instance子類,表示實(shí)例化的元素;Text子類,表示文檔中單獨(dú)的文本項(xiàng);Shape子類,用于在舞臺(tái)上操作或創(chuàng)建幾何形狀.
library對(duì)象,對(duì)應(yīng)于flash的“庫(kù)”面板,用于存儲(chǔ)和組織在Flash中創(chuàng)建的各種元件及位圖文件、圖形文件和視頻.其下屬的Item對(duì)象是一種抽象基類,派生出的BitmapItem對(duì)象、folderItem對(duì)象、fontItem對(duì)象、SoundItem對(duì)象、SymbolItem對(duì)象、VideoItem對(duì)象分別表示庫(kù)里的位圖、文件夾、文字、聲音、元件和視頻.
2.2 基于DOM的文檔訪問(wèn)
使用DOM技術(shù)對(duì)flash文檔進(jìn)行訪問(wèn),即使用JSFL腳本語(yǔ)言根據(jù)文檔對(duì)象樹(shù)的層次關(guān)系,通過(guò)遍歷查找訪問(wèn)文檔元素及相應(yīng)的屬性.如需要獲取當(dāng)前時(shí)間軸上圖層1所有幀中名稱為“玫瑰”的元件,可用以下遍歷語(yǔ)句來(lái)完成.
var curLayer,frameArray,curFrame,elts,i,j,t;
var tl=fl.getDocumentDOM().getTimeline();//獲取當(dāng)前文檔當(dāng)前時(shí)間軸
for (i=0;i curLayer=tl.layers[i]; if (curLayer.name=="圖層1"){ //定位到“圖層1” frameArray=curLayer.frames; //獲取“圖層1”上所有幀 for (j=0;j curFrame=frameArray[j]; //獲取“圖層1”上第j幀 elts=curFrame.elements; for (t=0;t if (elts[t]. name== "玫瑰") fl.trace("Frame "+ j +"Element "+ t +" Name = "); //輸出名為“玫瑰”元件的幀號(hào)及元素編號(hào) }}} 又如,判斷庫(kù)中元件是否為聲音元件可使用以下JSFL腳本: var myCurrentLib = fl.library; //myCurrentLib為當(dāng)前文檔的庫(kù)' var ItemNums=fl.library.items; for (var i=0;i if (myCurrentLib.items[i].itemType=="sound") //使用item對(duì)象的itemType屬性判斷庫(kù)里元件類型 fl.trace("This is a sound Item");} 3.1 JSFL在Flash作品自動(dòng)評(píng)價(jià)中的應(yīng)用 根據(jù)計(jì)算機(jī)作品自動(dòng)評(píng)價(jià)的常規(guī)流程:獲取源文件知識(shí)點(diǎn),將其與標(biāo)準(zhǔn)答案比對(duì)給分,設(shè)計(jì)評(píng)價(jià)腳本check.jsfl如下: var flashDoc = fl.openDocument(strInFile);//打開(kāi)源文件 var score=Check(flashDoc); //讀知識(shí)點(diǎn)信息并與標(biāo)準(zhǔn)答案匹配給分 Update(score); //上傳成績(jī) 將該腳本存于flash安裝目錄的Commands文件夾下,在flash編輯環(huán)境中執(zhí)行“命令”菜單中“運(yùn)行命令”或第三方開(kāi)發(fā)軟件調(diào)用flash的該命令即可執(zhí)行相應(yīng)的評(píng)價(jià)腳本. 其中Check(flashDoc)為知識(shí)點(diǎn)信息讀取與比較函數(shù),其內(nèi)容根據(jù)實(shí)際作品文檔具體展開(kāi).有案例如下: 設(shè)計(jì)一個(gè)主題為“水滴”的作品,實(shí)現(xiàn)一個(gè)水滴從葉子上滴落并漸隱的動(dòng)畫(huà)效果.相關(guān)答題素材及標(biāo)準(zhǔn)答案分別如圖2、圖3所示.作品涉及的知識(shí)點(diǎn)有:舞臺(tái)屬性(大小、背景色),新建圖層,庫(kù)操作(元件命名),圖形對(duì)象屬性(位置,透明度),補(bǔ)間動(dòng)畫(huà).相應(yīng)評(píng)分規(guī)則如表1所示. 圖2 Flash答題文件Fig. 2 The test file of Flash 圖3 Flash標(biāo)準(zhǔn)答案參考文件Fig. 3 The reference of Flash standard answer 題號(hào)題目描述評(píng)分細(xì)則分值1將“水滴.fla”文件的舞臺(tái)大小改為400×300像素,舞臺(tái)背景顏色設(shè)為#00cc99.舞臺(tái)大小正確舞臺(tái)背景顏色正確10分10分2新建一個(gè)名為“blank”的圖層,將庫(kù)中影片剪輯“我的新建”重命名為“我的樹(shù)葉”.新建圖層正確元件重命名正確10分10分3將“水滴動(dòng)”圖層第50幀的“水滴”圖形的透明度設(shè)為50%,并將該幀“水滴”圖形移動(dòng)到所在葉片下方.圖形的Alpha值正確圖形的橫坐標(biāo)正確(誤差范圍68~210)圖形的縱坐標(biāo)正確(誤差范圍240~300)20分10分10分4在“水滴動(dòng)”圖層的第40幀和第50幀之間創(chuàng)建動(dòng)作補(bǔ)間動(dòng)畫(huà).創(chuàng)建了補(bǔ)間動(dòng)畫(huà)正確20分 Check函數(shù)代碼摘要如下: if(flashdoc.width==400 && flashdoc.height==300) score=score+10; //舞臺(tái)大小正確 if (flashdoc. backgroundColor==”#00cc99”) score=socre+10; //舞臺(tái)背景顏色正確 var mytimeline=flashDoc.getTimeline(); var i; for(i=0; i< mytimeline.layerCount;i++) if (mytimeline.layers[i].name==”blank”) break; if (i< mytimeline.layerCount && mytimeline.layerCount>2) score=score+10; //新建圖層正確 var ItemNums=flashDoc.library.items var flag1=0,flag2=0; for (i=0; i if (flashDoc.library.items[i].name==”我的樹(shù)葉”) flag1=1; if (flashDoc.library.items[i].name==”我的新建”) flag2=1; if(flag1 && !flag2) score=score+10; //元件重命名正確 for(i=0; i< mytimeline.layerCount;i++) if (mytimeline.layers[i].name==”水滴動(dòng)”) {var curlayer= mytimeline.layers[i]; break;} if (i {var myInstance= curlayer.frames[49].elements[0] if(myInstance. colorAlphaPercent==50) score=score+20; //圖形的透明度設(shè)置正確 if (myInstance.left>=68 && myInstance.left<=210) score=score+10; if (myInstance.top>=240 && myInstance.top<=300) score=score+10;} if(curlayer.frames[40].tweenType==”motion”) score=score+10; //動(dòng)作補(bǔ)間正確 3.2 自動(dòng)評(píng)價(jià)中提高文檔識(shí)別率的幾種方法 Flash作品自動(dòng)評(píng)價(jià)的實(shí)現(xiàn)及準(zhǔn)確率的保證關(guān)鍵在于知識(shí)點(diǎn)信息的獲取,其實(shí)質(zhì)是對(duì)Flash文檔的識(shí)別.基于DOM的腳本訪問(wèn)為識(shí)別Flash文檔中的大部分元素提供了方便,但在實(shí)際應(yīng)用過(guò)程中,尚有一些知識(shí)點(diǎn)的判斷不能以此方法直接得到.為此提出以下幾種變通方法,并且經(jīng)過(guò)實(shí)驗(yàn)已證明可行. 3.2.1 間接分析法 此方法適用于通過(guò)對(duì)其他對(duì)象的屬性或本對(duì)象的其他屬性能分析出所需關(guān)鍵信息的情況.比如對(duì)不同幀的識(shí)別與判斷. Flash動(dòng)畫(huà)遵循最基本的動(dòng)畫(huà)原理,即通過(guò)連續(xù)快速地播放靜止的圖片,利用人眼的“視覺(jué)暫留”現(xiàn)象,產(chǎn)生活動(dòng)影像的效果.這些靜止的圖片稱為幀,是制作動(dòng)畫(huà)的核心要素.根據(jù)動(dòng)畫(huà)實(shí)現(xiàn)的不同需求,flash中的幀分為普通幀、空白幀、關(guān)鍵幀和空白關(guān)鍵幀. 關(guān)鍵幀是包含了動(dòng)畫(huà)對(duì)象的屬性更改或ActionScript代碼以控制文檔某些方法的幀.根據(jù)這些信息,flash能在兩個(gè)關(guān)鍵幀之間自動(dòng)計(jì)算出其過(guò)渡幀,從而模擬出變化過(guò)程.因此,關(guān)鍵幀是舞臺(tái)上存在實(shí)例對(duì)象并可對(duì)其進(jìn)行編輯的幀.相應(yīng)的,普通幀間用于延長(zhǎng)動(dòng)畫(huà)長(zhǎng)度的幀,其上元素對(duì)象不能被編輯.空白幀即舞臺(tái)上沒(méi)有任何元素的幀,若該幀能被添加、編輯動(dòng)畫(huà)對(duì)象則為空白關(guān)鍵幀. 識(shí)別作品中幀的不同類型,對(duì)于判別作者最基本的動(dòng)畫(huà)理念及制作技術(shù)具有重要意義.在研究了JSAPI中關(guān)于幀的屬性后,筆者發(fā)現(xiàn)沒(méi)有一個(gè)屬性可以直接用來(lái)區(qū)分上述幀類型.但若利用幀的startFrame屬性和elements屬性可根據(jù)幀定義來(lái)分析得到幀類型.如前文所述是否為空白幀可通過(guò)該幀舞臺(tái)上的對(duì)象數(shù)是否為0來(lái)判斷,即當(dāng)某幀elements.length=0時(shí),該幀為空白幀或空白關(guān)鍵幀.從動(dòng)畫(huà)生成的角度來(lái)看,關(guān)鍵幀位于動(dòng)畫(huà)序列的兩端,而startFrame正好提供了動(dòng)畫(huà)序列起始幀的索引號(hào),那么在遍歷幀的過(guò)程中若當(dāng)前幀的索引號(hào)正好等于所處動(dòng)畫(huà)序列起始幀的索引號(hào),則可以推測(cè)該幀就為關(guān)鍵幀.綜合上述兩個(gè)條件,便可判斷出所有幀的類型.代碼片斷如下: var flgKey,flgEmpty; flgKey=flgEmpty=0; \flgKey=0表示非關(guān)鍵幀,flgEmpty=0表示非空白 var frameArray = curlayer.frames; for(i=0;i< frameArray.length;i++){ var myElements= frameArray[i].elements; if (i==frameArray[i].startFrame) flgKey=1; if (myElements.length==0) flgEmpty=1; if (flgKey) if (Empty) fl.trace("Frame["+i+"] is a Blank Keyframe"); else fl.trace("Frame["+i+"] is a Keyframe"); else if (Empty) fl.trace("Frame["+i+"] is a Blank Frame"); else fl.trace("Frame["+i+"] is a Normal frame"); } 3.2.2 實(shí)例采樣法 當(dāng)獲取完整對(duì)象比較困難或遍歷某對(duì)象集需要太多時(shí)間開(kāi)銷時(shí),若該對(duì)象(集)某個(gè)局部區(qū)域能反映整個(gè)對(duì)象(集)的指定特征時(shí),可采用實(shí)例采樣法獲取文檔信息.比如需要了解一個(gè)不規(guī)則圖形被施加的編輯效果,考慮使用這種方法. 對(duì)于對(duì)象集的采樣,一般在遍歷過(guò)程中選定合適的循環(huán)起止來(lái)確定樣本片斷即可,此處不再贅述.下面介紹一下對(duì)象局部區(qū)域的采樣.此采樣法主要是利用Document對(duì)象的setSelectionRect方法來(lái)實(shí)現(xiàn).該方法表示使用指定坐標(biāo)繪制相對(duì)于舞臺(tái)的矩形選取框.其語(yǔ)法表示及參數(shù)說(shuō)明如下: 語(yǔ)法: document.setSelectionRect(rect [,bReplaceCurrentSelection [, bContactSensitiveSelection]]) 參數(shù):rect 一個(gè)要設(shè)置為選中內(nèi)容的矩形對(duì)象. 其格式為{left:value1,top:value2,right:value3,bottom:value4}.left和top值表示指定對(duì)象左上角的位置(如left:0,top:0表示舞臺(tái)的左上角),right和bottom值指定對(duì)象右下角的位置. bReplaceCurrentSelection 一個(gè)布爾值,它指定方法是替換當(dāng)前的選擇(true),還是添加到當(dāng)前的選擇中(false).默認(rèn)值為true. bContactSensitiveSelection 一個(gè)布爾值,它指定在對(duì)象選擇過(guò)程中是啟用(true)還是禁用(false)接觸感應(yīng)選擇模式.默認(rèn)值為false. 圖4 船帆采樣Fig. 4 Sampling of sail 如需要檢測(cè)圖4中船帆的填充色是否為“白色”時(shí),可以在船帆中取一個(gè)具有代表性的矩形區(qū)域(圖中虛線所示),以此區(qū)域的填充色為評(píng)價(jià)的樣本.代碼實(shí)現(xiàn)如下: flashDoc.setSelectionRect({left:249, top:130, right:267, bottom:178});\flashDoc表示當(dāng)前文檔 fl.trace (flashDoc.getCustomFill().color); 3.2.3 正則表達(dá)式 Flash動(dòng)畫(huà)不僅止于簡(jiǎn)單的畫(huà)面順序播放,其特色更體現(xiàn)在強(qiáng)大的交互性及數(shù)據(jù)處理能力,而這部分工作則由flash的腳本語(yǔ)言ActionScrip來(lái)完成.所謂ActionScript是針對(duì)Adobe Flash Player運(yùn)行時(shí)環(huán)境的編程語(yǔ)言,它在Flash內(nèi)容和應(yīng)用程序中實(shí)現(xiàn)了交互性、數(shù)據(jù)處理以及其它許多功能.由此可見(jiàn)對(duì)ActionScript腳本的識(shí)別也是flash文檔識(shí)別中一項(xiàng)重要的內(nèi)容. 雖然具有一系列的語(yǔ)法規(guī)范,因作者的編程風(fēng)格不同,實(shí)現(xiàn)同樣的功能也會(huì)有多種不同的表達(dá)形式,所以消除冗余代碼,將各種等價(jià)的表達(dá)標(biāo)準(zhǔn)化為統(tǒng)一的形式是提高代碼識(shí)別率的有效手段之一.正則表達(dá)式在這方面可能會(huì)提供一個(gè)較好的解決方案. 所謂正則表達(dá)式,就是一種描述字符串結(jié)構(gòu)模式的形式化表達(dá)方法.配合上特定的工具提供的額外支持,正則表達(dá)式能夠添加、刪除、分離、疊加、插入和修整各種類型的文本和數(shù)據(jù)[2].其在數(shù)據(jù)驗(yàn)證、文本檢索方面表現(xiàn)出色.比如正則表達(dá)式“[0-9a-z_!.?]”能夠匹配一個(gè)數(shù)字、小寫(xiě)字母、下畫(huà)線、感嘆號(hào)、點(diǎn)號(hào),或者是問(wèn)號(hào),其中0-9表示9個(gè)數(shù)字中任一1個(gè).又如表達(dá)式“user
/gi”匹配指定字符串中所有“user”后是回車換行符的子串,且對(duì)于user不區(qū)別大小寫(xiě),即回車換行符前是“User”、“USER”等的情況也匹配.此處“
”、“
”分別表示回車符(對(duì)應(yīng)ASCII的 基于此,將在flash文檔識(shí)別的腳本中使用javascript的replace函數(shù),并將構(gòu)建的正則表達(dá)式作為該函數(shù)的參數(shù)傳入即能實(shí)現(xiàn)部分代碼的規(guī)范化.如使用以下語(yǔ)句將取得的ActionScript代碼去掉所有回車換行符,并以不區(qū)分大小寫(xiě)的方式輸出. var str=curFrame.actionScript,使用幀對(duì)象的actionScript屬性獲取當(dāng)前幀中的腳本代碼; fl.trace(str.replace(/
/gi, ""))
/gi為構(gòu)建的正則表達(dá)式. 表2 Flash知識(shí)點(diǎn)自動(dòng)評(píng)價(jià)正確率Tab. 2 Correct rate of Flash knowledge auto-evaluation 綜合使用上述技術(shù)實(shí)現(xiàn)的Flash作品自動(dòng)評(píng)價(jià)系統(tǒng),在浙江省高中信息技術(shù)會(huì)考應(yīng)用中已取得一定成效.作者以浙江省會(huì)考的5套Flash作品試題為自動(dòng)評(píng)價(jià)對(duì)象,組織10人按不同方式回答該10套試題,自動(dòng)評(píng)價(jià)后按照知識(shí)點(diǎn)分析結(jié)果如表2所示. JSFL是一種輕量級(jí)的腳本語(yǔ)言,基于DOM的文檔訪問(wèn)方式使其對(duì)Flash文檔及其元素的操縱變得容易實(shí)現(xiàn),“間接分析”、“實(shí)例采樣”、“正則表達(dá)式”等方法的結(jié)合使用又使Flash文檔的識(shí)別率得以提高,給自動(dòng)評(píng)價(jià)的準(zhǔn)確性提供了有效保障.該技術(shù)已連續(xù)三年在浙江省高中信息技術(shù)會(huì)考自動(dòng)化評(píng)價(jià)中加以應(yīng)用,取得了良好的效果,具有一定的推廣價(jià)值. [1] 王德東,楊永華,盧暢.基于JSFL的Flash自動(dòng)測(cè)評(píng)系統(tǒng)研究[J].浙江海洋學(xué)院學(xué)報(bào):自然科學(xué)版,2010,29(1):89-94. [2] Jeffrey E F, Fried l,余晟.精通正則表達(dá)式[M].3版.北京:電子工業(yè)出版社,2007. Auto-EvaluationTechniquesofFlashWorksBasedonJSFL XIANG Jie, JIANG Hua-qiang, ZHOU Yan-jun (Hangzhou Institute of Service Engineering, Hangzhou Normal University, Hangzhou 310012, China) This paper introduced the auto-evaluation techniques of flash works based on JSFL script,and proposed the methods of indirect analysis, sampling and regular expressions which could improve the correct identification rate of flash documents. The results show that the application of the technique not only simplifies the implementation process of flash works’ auto-evaluation, but also improves the accuracy of the evaluation work, it has some practical value. Flash; JSFL; Flash DOM; auto-evaluation 10.3969/j.issn.1674-232X.2011.02.017 2010-10-08 項(xiàng) 潔(1981—),女,浙江杭州人,講師,碩士,主要從事計(jì)算機(jī)教育與應(yīng)用、多媒體技術(shù)、人工智能等研究.E-mail: xj2002xj@vip.sina.com TP319 A 1674-232X(2011)02-0174-073 基于JSFL的Flash作品評(píng)價(jià)技術(shù)
4 Flash作品自動(dòng)評(píng)價(jià)實(shí)例的效果分析
5 結(jié) 論