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