高校flash教学中自动评分系统的实现
2020-08-21李博齐耀龙
李博 齐耀龙
摘要:目前高校及各级教育机构在各科上都在进行题库建设及自动评分的尝试,很多专业已经成形了。但是在多媒体教学中,由于设计声音、图片、动画、视频等各种主观性很强的对象,对于自动评分形成了难题。基于多年的高校实际教学经验,在flash动画的随机组卷和自动评分方面给出了具体的实现。
关键词:Flash动画;JSFL;自动评分;题库;组卷
中图分类号:TP311.1 文献标识码:A
文章编号:1009-3044(2020)21-0183-02
开放科学(资源服务)标识码(OSID):
1 引言
在各个学科的测试和考试中,为了追求公开公平公正的原则,各级教育机构都努力对试卷进行随机组卷和自动评分的尝试。在高校教育中的多媒体课程包括例如声音、图片处理、视频剪辑和flash动画制作等主观性随意性很强的题目,在以上工作中造成了很大的困难。往常的主观题目都是教师人工评分,因为学生人数过多,工作量非常大,如果再强调每人一套题,再进行人工评分就不太现实了。
2 理论基础
Flash是由Adobe公司推出的交互式矢量图和Web动画设计软件。在实现动画的同时,系统内置了ActionScript语言,而且支持JSFL。JSFL指Flash JavaScript,是JavaScript脚本文件,一个辅助编程工具,可用来创建在Flash创作环境中运行的脚本。对应不同的flash对象和动画方法,jsfl都有相应的类。也就是说动画本身有相应的语言代码可以调用,这样给用程序浏览动画形成了可能。
3 具体实施
我们利用JSFL可以浏览fla文件中的所有对象这一特性设计了相关系统,对简单的操作题能够实现和客观题一样的自动评分。
首先,把Flash的知识点进行分类,加入难度系数。
然后把所有的操作题按知识点细分得出该题的难度值和对应章节。
最后再组卷时考虑章节覆盖和难度对应(见图1、图2)。
评分部分,利用flash自己的库函数,编写jsfl文件。常用的类有(见表1):
4 评分过程
为了更好地评分,题目中规定了比较具体的动画帧数,做动画的元件以及动画所在层的名字,一般是提供一个已经命名好的fla文件,在场景中有已经命名好的层,在库中有命名好的元件。
评分的大致过程如下:
4.1遍 历所有学生的文件夹
相应代码:
var sources= FUile.listFolder( folderPath,”directories”);
4.2 遍历当前文件夹的所有fla文件
相应代码:
var sources2=FLfile. listFolder(sources[0]+”/flash/*. fla”,”files”1:
4.3 打開fla文件,找到相应的层,遍历所有的帧
相应代码:
var fa=fl.getDocumentD OM O.getTimelineO.layers[Ol.frames;
4.4 根据关键帧的动画类型,帧的起始位置,动画总帧数来判断是否满足条件。
4.4.1 补间形状(tweenType=”shape”)
判断起始终止关键帧形状是否正确,补间是否正确。判断对象的elementType是否为shape,矢量图的x,y属性
4.4.2 传统补间(tweenType=”motion”)
1移动判断元件的x,y属性
1缩放判断元件的scaleX,scaleY属性或width,height属性
1旋转判断关键帧的rotateDirection值
1缓动判断关键帧的SimpleEase值
1淡人淡出判断元件的colorAlphaPercent属性
1遮罩动画先判断遮罩是否正确,两个层的类型是否为mask和masked;然后看动画是否正确。
1引导动画先判断引导是否正确,两个层的类型是否为guide和guideed;然后看动画是否正确。
4.4.3 补间动画(tweenType=”motion object”)
判断相应的帧的xml中的相应的属性是否正确。传统补间的大部分动画都有相应的属性可以判断,例如移动是Motion_x,Motion_y,Motion_z属性,其他属性类似不再赘述。
当然评分软件的编写最大的困难不是各种类的使用,而是纠错,学生的答题结果千奇百怪,各种莫名的结果都要考虑到,经过几年的运行和不断地改进,该系统经受了残酷的考验,基本达到了要求。
5 评分时的纠错
因为评分时是很多人的文件放在一起评的,一个一个遍历,速度比较慢,当评分程序出现错误的时候运行就会中断,就需要重新配置环境,重新运行,造成效率低下。所以程序的纠错是必要的,最好是能把出现的错误提前预料到,提前做出应对,节约时间和精力。
但是学生的脑洞大开,出现的错误防不胜防,我们把近年来评分时遇到的错误一一列举,以供其他有此需求的教师参考。
5.1 一定要确定关键帧的动画类型
3种补间方式再加上没有补间的None类型,一共会出现4种tweenType,题目肯定只会考一种补间方式,但是不要想当然,学生会对同一道题目做出所有类型的动画,当然包括错误的。所以在找到起始关键帧后一定要判断动画类型是否正确,否则在后面取相关对象的时候就会出错。
5.2 一定要确定关键帧上的对象的数量
对于一些简单的动画,fla文件中只提供了一个元件,也只有一个层,按说只需要判断元件的动画是否满足要求就行了,但是学生会在补间的关键帧上放一堆对象或者什么都没有,这时如果直接判断对象的动画就会出错。
5.3 一定要确定关键帧上的对象类型
对于形状补间,因为不是元件,只是矢量图,不能对具体的锚点位置评分,只能看是否在关键帧有形状补间,并且对象是提供的矢量图。但是学生会在补间完成后把矢量图转换成元件,或者干脆换成没提供的图形,或者删掉。所以如果不知道对象类型去遍历就会出错。
5.4 一定要确定层的顺序
有的题目多个层的顺序是已经给定的,但是学生会自己打乱,而且会改名,另外像引导动画和遮罩动画层的顺序是必需的。所以一定要确定先判断层的顺序再去遍历层。
5.5 评引导动画时,一定要确定对象是否在引导线上
引导动画不光需要判断叠放次序,还要判断被引导对象是否在引导线上,因为学生会在被引导层的关键帧上放置多个对象或者没有对象,或者对象没有对齐引导线。
5.6 评引导动画时,一定要判断引导层没有补间,而且不是元件
因为引导层一定要保持矢量图的散点状态,才能有引导作用。
5.7 评最新的补间动画时,因为要用到动画的xml文本,一定要确定是否能生成xml文本
补间动画的属相非常多,评分时要把动画转换为xml文本来搜索相应的属性。但是学生会在补间后对帧上的元件进行随意增删,破坏了补间,根本就不能生成xml文本,何談搜索。
以上只是列举了近几年出现的典型错误,其实真正的答题环境可以称得上“百花齐放”,对相应的程序设计提出了高要求。
6 展望
现在的组卷和评分系统已经运行了几年了,也经受了许多考验,但还是有可以提高的部分。因为动画过于灵活,而且当层数很多时,自动评分系统往往耗时较长,容错率也有所下降。以后在出题环节就要考虑这个问题,尽量把题目的灵活性控制的低一些。JSFL本身的扩展能力纠错能力一般,可以尝试在JSFL外,用其他语言调用函数,充分发挥各自的优势。
参考文献:
[1]隋秀龙.基于JSFL自动批改Flash操作题的研究及实现[J].电脑编程技巧与维护,2015(5):77-79.
[2]王德东,杨永华,卢畅.基于JSFL的Flash自动测评系统研究[Jl.浙江海洋学院学报(自然科学版),2010,29(1):89-94,98.
[3]苗永利,基于内容及图像分析的信息技术自动阅卷系统[D].山西省太原市:太原理工大学,2016.
【通联编辑:王力】
基金项目:河北大学工商学院第二批课程建设项目(2019KCJS38);河北大学第二批“课程思政改革试点课程”建设项目(KCSZ-02-117)
作者简介:李博(1973-),男,河北保定人,讲师,硕士,主要研究方向为计算机软件设计、人工智能等。