李博 齊耀龍
摘要:目前高校及各級(jí)教育機(jī)構(gòu)在各科上都在進(jìn)行題庫(kù)建設(shè)及自動(dòng)評(píng)分的嘗試,很多專(zhuān)業(yè)已經(jīng)成形了。但是在多媒體教學(xué)中,由于設(shè)計(jì)聲音、圖片、動(dòng)畫(huà)、視頻等各種主觀性很強(qiáng)的對(duì)象,對(duì)于自動(dòng)評(píng)分形成了難題?;诙嗄甑母咝?shí)際教學(xué)經(jīng)驗(yàn),在flash動(dòng)畫(huà)的隨機(jī)組卷和自動(dòng)評(píng)分方面給出了具體的實(shí)現(xiàn)。
關(guān)鍵詞:Flash動(dòng)畫(huà);JSFL;自動(dòng)評(píng)分;題庫(kù);組卷
中圖分類(lèi)號(hào):TP311.1 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)21-0183-02
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
1 引言
在各個(gè)學(xué)科的測(cè)試和考試中,為了追求公開(kāi)公平公正的原則,各級(jí)教育機(jī)構(gòu)都努力對(duì)試卷進(jìn)行隨機(jī)組卷和自動(dòng)評(píng)分的嘗試。在高校教育中的多媒體課程包括例如聲音、圖片處理、視頻剪輯和flash動(dòng)畫(huà)制作等主觀性隨意性很強(qiáng)的題目,在以上工作中造成了很大的困難。往常的主觀題目都是教師人工評(píng)分,因?yàn)閷W(xué)生人數(shù)過(guò)多,工作量非常大,如果再?gòu)?qiáng)調(diào)每人一套題,再進(jìn)行人工評(píng)分就不太現(xiàn)實(shí)了。
2 理論基礎(chǔ)
Flash是由Adobe公司推出的交互式矢量圖和Web動(dòng)畫(huà)設(shè)計(jì)軟件。在實(shí)現(xiàn)動(dòng)畫(huà)的同時(shí),系統(tǒng)內(nèi)置了ActionScript語(yǔ)言,而且支持JSFL。JSFL指Flash JavaScript,是JavaScript腳本文件,一個(gè)輔助編程工具,可用來(lái)創(chuàng)建在Flash創(chuàng)作環(huán)境中運(yùn)行的腳本。對(duì)應(yīng)不同的flash對(duì)象和動(dòng)畫(huà)方法,jsfl都有相應(yīng)的類(lèi)。也就是說(shuō)動(dòng)畫(huà)本身有相應(yīng)的語(yǔ)言代碼可以調(diào)用,這樣給用程序?yàn)g覽動(dòng)畫(huà)形成了可能。
3 具體實(shí)施
我們利用JSFL可以瀏覽fla文件中的所有對(duì)象這一特性設(shè)計(jì)了相關(guān)系統(tǒng),對(duì)簡(jiǎn)單的操作題能夠?qū)崿F(xiàn)和客觀題一樣的自動(dòng)評(píng)分。
首先,把Flash的知識(shí)點(diǎn)進(jìn)行分類(lèi),加入難度系數(shù)。
然后把所有的操作題按知識(shí)點(diǎn)細(xì)分得出該題的難度值和對(duì)應(yīng)章節(jié)。
最后再組卷時(shí)考慮章節(jié)覆蓋和難度對(duì)應(yīng)(見(jiàn)圖1、圖2)。
評(píng)分部分,利用flash自己的庫(kù)函數(shù),編寫(xiě)jsfl文件。常用的類(lèi)有(見(jiàn)表1):
4 評(píng)分過(guò)程
為了更好地評(píng)分,題目中規(guī)定了比較具體的動(dòng)畫(huà)幀數(shù),做動(dòng)畫(huà)的元件以及動(dòng)畫(huà)所在層的名字,一般是提供一個(gè)已經(jīng)命名好的fla文件,在場(chǎng)景中有已經(jīng)命名好的層,在庫(kù)中有命名好的元件。
評(píng)分的大致過(guò)程如下:
4.1遍 歷所有學(xué)生的文件夾
相應(yīng)代碼:
var sources= FUile.listFolder( folderPath,”directories”);
4.2 遍歷當(dāng)前文件夾的所有fla文件
相應(yīng)代碼:
var sources2=FLfile. listFolder(sources[0]+”/flash/*. fla”,”files”1:
4.3 打開(kāi)fla文件,找到相應(yīng)的層,遍歷所有的幀
相應(yīng)代碼:
var fa=fl.getDocumentD OM O.getTimelineO.layers[Ol.frames;
4.4 根據(jù)關(guān)鍵幀的動(dòng)畫(huà)類(lèi)型,幀的起始位置,動(dòng)畫(huà)總幀數(shù)來(lái)判斷是否滿(mǎn)足條件。
4.4.1 補(bǔ)間形狀(tweenType=”shape”)
判斷起始終止關(guān)鍵幀形狀是否正確,補(bǔ)間是否正確。判斷對(duì)象的elementType是否為shape,矢量圖的x,y屬性
4.4.2 傳統(tǒng)補(bǔ)間(tweenType=”motion”)
1移動(dòng)判斷元件的x,y屬性
1縮放判斷元件的scaleX,scaleY屬性或width,height屬性
1旋轉(zhuǎn)判斷關(guān)鍵幀的rotateDirection值
1緩動(dòng)判斷關(guān)鍵幀的SimpleEase值
1淡人淡出判斷元件的colorAlphaPercent屬性
1遮罩動(dòng)畫(huà)先判斷遮罩是否正確,兩個(gè)層的類(lèi)型是否為mask和masked;然后看動(dòng)畫(huà)是否正確。
1引導(dǎo)動(dòng)畫(huà)先判斷引導(dǎo)是否正確,兩個(gè)層的類(lèi)型是否為guide和guideed;然后看動(dòng)畫(huà)是否正確。
4.4.3 補(bǔ)間動(dòng)畫(huà)(tweenType=”motion object”)
判斷相應(yīng)的幀的xml中的相應(yīng)的屬性是否正確。傳統(tǒng)補(bǔ)間的大部分動(dòng)畫(huà)都有相應(yīng)的屬性可以判斷,例如移動(dòng)是Motion_x,Motion_y,Motion_z屬性,其他屬性類(lèi)似不再贅述。
當(dāng)然評(píng)分軟件的編寫(xiě)最大的困難不是各種類(lèi)的使用,而是糾錯(cuò),學(xué)生的答題結(jié)果千奇百怪,各種莫名的結(jié)果都要考慮到,經(jīng)過(guò)幾年的運(yùn)行和不斷地改進(jìn),該系統(tǒng)經(jīng)受了殘酷的考驗(yàn),基本達(dá)到了要求。
5 評(píng)分時(shí)的糾錯(cuò)
因?yàn)樵u(píng)分時(shí)是很多人的文件放在一起評(píng)的,一個(gè)一個(gè)遍歷,速度比較慢,當(dāng)評(píng)分程序出現(xiàn)錯(cuò)誤的時(shí)候運(yùn)行就會(huì)中斷,就需要重新配置環(huán)境,重新運(yùn)行,造成效率低下。所以程序的糾錯(cuò)是必要的,最好是能把出現(xiàn)的錯(cuò)誤提前預(yù)料到,提前做出應(yīng)對(duì),節(jié)約時(shí)間和精力。
但是學(xué)生的腦洞大開(kāi),出現(xiàn)的錯(cuò)誤防不勝防,我們把近年來(lái)評(píng)分時(shí)遇到的錯(cuò)誤一一列舉,以供其他有此需求的教師參考。
5.1 一定要確定關(guān)鍵幀的動(dòng)畫(huà)類(lèi)型
3種補(bǔ)間方式再加上沒(méi)有補(bǔ)間的None類(lèi)型,一共會(huì)出現(xiàn)4種tweenType,題目肯定只會(huì)考一種補(bǔ)間方式,但是不要想當(dāng)然,學(xué)生會(huì)對(duì)同一道題目做出所有類(lèi)型的動(dòng)畫(huà),當(dāng)然包括錯(cuò)誤的。所以在找到起始關(guān)鍵幀后一定要判斷動(dòng)畫(huà)類(lèi)型是否正確,否則在后面取相關(guān)對(duì)象的時(shí)候就會(huì)出錯(cuò)。
5.2 一定要確定關(guān)鍵幀上的對(duì)象的數(shù)量
對(duì)于一些簡(jiǎn)單的動(dòng)畫(huà),fla文件中只提供了一個(gè)元件,也只有一個(gè)層,按說(shuō)只需要判斷元件的動(dòng)畫(huà)是否滿(mǎn)足要求就行了,但是學(xué)生會(huì)在補(bǔ)間的關(guān)鍵幀上放一堆對(duì)象或者什么都沒(méi)有,這時(shí)如果直接判斷對(duì)象的動(dòng)畫(huà)就會(huì)出錯(cuò)。
5.3 一定要確定關(guān)鍵幀上的對(duì)象類(lèi)型
對(duì)于形狀補(bǔ)間,因?yàn)椴皇窃皇鞘噶繄D,不能對(duì)具體的錨點(diǎn)位置評(píng)分,只能看是否在關(guān)鍵幀有形狀補(bǔ)間,并且對(duì)象是提供的矢量圖。但是學(xué)生會(huì)在補(bǔ)間完成后把矢量圖轉(zhuǎn)換成元件,或者干脆換成沒(méi)提供的圖形,或者刪掉。所以如果不知道對(duì)象類(lèi)型去遍歷就會(huì)出錯(cuò)。
5.4 一定要確定層的順序
有的題目多個(gè)層的順序是已經(jīng)給定的,但是學(xué)生會(huì)自己打亂,而且會(huì)改名,另外像引導(dǎo)動(dòng)畫(huà)和遮罩動(dòng)畫(huà)層的順序是必需的。所以一定要確定先判斷層的順序再去遍歷層。
5.5 評(píng)引導(dǎo)動(dòng)畫(huà)時(shí),一定要確定對(duì)象是否在引導(dǎo)線(xiàn)上
引導(dǎo)動(dòng)畫(huà)不光需要判斷疊放次序,還要判斷被引導(dǎo)對(duì)象是否在引導(dǎo)線(xiàn)上,因?yàn)閷W(xué)生會(huì)在被引導(dǎo)層的關(guān)鍵幀上放置多個(gè)對(duì)象或者沒(méi)有對(duì)象,或者對(duì)象沒(méi)有對(duì)齊引導(dǎo)線(xiàn)。
5.6 評(píng)引導(dǎo)動(dòng)畫(huà)時(shí),一定要判斷引導(dǎo)層沒(méi)有補(bǔ)間,而且不是元件
因?yàn)橐龑?dǎo)層一定要保持矢量圖的散點(diǎn)狀態(tài),才能有引導(dǎo)作用。
5.7 評(píng)最新的補(bǔ)間動(dòng)畫(huà)時(shí),因?yàn)橐玫絼?dòng)畫(huà)的xml文本,一定要確定是否能生成xml文本
補(bǔ)間動(dòng)畫(huà)的屬相非常多,評(píng)分時(shí)要把動(dòng)畫(huà)轉(zhuǎn)換為xml文本來(lái)搜索相應(yīng)的屬性。但是學(xué)生會(huì)在補(bǔ)間后對(duì)幀上的元件進(jìn)行隨意增刪,破壞了補(bǔ)間,根本就不能生成xml文本,何談搜索。
以上只是列舉了近幾年出現(xiàn)的典型錯(cuò)誤,其實(shí)真正的答題環(huán)境可以稱(chēng)得上“百花齊放”,對(duì)相應(yīng)的程序設(shè)計(jì)提出了高要求。
6 展望
現(xiàn)在的組卷和評(píng)分系統(tǒng)已經(jīng)運(yùn)行了幾年了,也經(jīng)受了許多考驗(yàn),但還是有可以提高的部分。因?yàn)閯?dòng)畫(huà)過(guò)于靈活,而且當(dāng)層數(shù)很多時(shí),自動(dòng)評(píng)分系統(tǒng)往往耗時(shí)較長(zhǎng),容錯(cuò)率也有所下降。以后在出題環(huán)節(jié)就要考慮這個(gè)問(wèn)題,盡量把題目的靈活性控制的低一些。JSFL本身的擴(kuò)展能力糾錯(cuò)能力一般,可以嘗試在JSFL外,用其他語(yǔ)言調(diào)用函數(shù),充分發(fā)揮各自的優(yōu)勢(shì)。
參考文獻(xiàn):
[1]隋秀龍.基于JSFL自動(dòng)批改Flash操作題的研究及實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2015(5):77-79.
[2]王德東,楊永華,盧暢.基于JSFL的Flash自動(dòng)測(cè)評(píng)系統(tǒng)研究[Jl.浙江海洋學(xué)院學(xué)報(bào)(自然科學(xué)版),2010,29(1):89-94,98.
[3]苗永利,基于內(nèi)容及圖像分析的信息技術(shù)自動(dòng)閱卷系統(tǒng)[D].山西省太原市:太原理工大學(xué),2016.
【通聯(lián)編輯:王力】
基金項(xiàng)目:河北大學(xué)工商學(xué)院第二批課程建設(shè)項(xiàng)目(2019KCJS38);河北大學(xué)第二批“課程思政改革試點(diǎn)課程”建設(shè)項(xiàng)目(KCSZ-02-117)
作者簡(jiǎn)介:李博(1973-),男,河北保定人,講師,碩士,主要研究方向?yàn)橛?jì)算機(jī)軟件設(shè)計(jì)、人工智能等。