APP下载

基于Flash和数据库技术构建网络课程的测验模块

2009-03-11赵志靖

中国教育信息化·基础教育 2009年2期
关键词:网络课程数据库

赵志靖 周 静

摘 要:本文在分析目前基于Flash技术开发练习测验的四种方法的基础上,提出了借助数据库技术,通过Flash调用数据库的方法来构建网络课程的测验模块,并以网络课程测验模块中的单选题为例,详细阐述了这种方法的实现过程。

关键词:Flash;数据库;XML;网络课程

中图分类号:TP393 文献标识码:A 文章编号:1673-8454(2009)04-0072-03

一、网络课程的设计和开发概述

网络课程的设计和开发是教育技术研究的一个重要内容。一个完整的网络课程,其基本模块通常包括:教学内容的多媒体演示、练习测验、检索查询、学习指导、帮助导航、讨论交流等。其中“练习测验”部分作为一种行之有效的教学手段和测评手段,是一个优秀的网络课程不可缺少的重要组成部分。开发网络课程的技术有很多,如ASP、ASP.NET、PHP、JSP等,本文研究的是Flash技术。

目前,基于Flash技术开发的练习测验主要有四种方法:一是利用帧技术,即每一帧编辑一道习题;[1]二是利用组件,即利用Flash内置的“学习交互”组件开发练习测验;[2] 三是利用LoadVariablesNum命令,即利用Flash脚本语言中的LoadVariablesNum命令调用外部文本文件;[3][4][5] 四是利用XML技术,即利用Flash脚本语言调用外部XML文件。[6][7]

前两种方法每道题目都要在Flash源文件中占用一帧,并且题目的内容必须在Flash源文件中才能编辑,当需要修改练习题的内容时必须打开源文件,一帧一帧地修改才能完成,即如果要修改题目内容就要重新做一遍课件,不利于广泛应用。后两种方法是将试题信息存放在外部文本文件或XML文件中,通过Flash读取文本文件或XML文件中的数据将试题呈现给用户,而不必打开Flash源文件一帧一帧地修改。但随着题目总数的增加,外部文件也会随之增加,增加到一定程度时,外部文件的建立和管理都比较困难,通过调用外部文件的方法只能解决修改题目内容的困难,而无法解决随意增添或减少题目数量的困难。因此,本文借助数据库技术,通过Flash间接调用数据库来构建网络课程的测验模块。

二、设计思路

本测验模块主要由用户界面文件、数据库文件、ASP处理文件和动作脚本四部分组成。用户界面文件向使用者显示试题信息、交互信息等;数据库文件用来存放试题内容,如题干、各备选项及正确答案等;利用ASP与数据库发生交互,将数据库中的数据动态生成XML格式的数据文件;动作脚本则是用户界面和数据间通信的桥梁,它将动态生成的XML格式的数据解析后存放在数组中,并通过界面文件将试题显示在Flash文件中。本测验模块的各部分关系及其流程如图1所示。

三、实现过程

本文以单选题为例介绍一下上述思路的实现过程。

1.创建用户界面

打开Flash软件,在其中创建一影片剪辑元件,命名为question。在question中添加六个动态文本框和四个单选按钮组件,如图2所示。

设置六个动态文本框的名称依次为num_txt、t_txt、k1_txt、k2_txt、k3_ txt和k4_txt,分别用于显示试题序号、试题内容和四个备选项内容。设置四个单选按钮组件的名称依次为A_btn、B_btn、C_btn和D_btn。

2.设计数据库文件

数据库文件用来存放试题内容,如题干、各备选项以及正确答案等,其各个字段名称、数据类型及含义如图3所示。

3.编写ASP处理文件

通过ASP将数据库中试题数据转换成XML文件,再由Flash前台读入XML文件实现试题的显示。将数据库数据转换成XML文件的核心代码如下:

i=1

response.Write("<?xml version='1.0' encoding='utf-8'?><root>")

do while not rs.eof

response.Write("<t"&i&" key='"&rs("key")&"'><question>"&rs("t")&"</question><key1>"&rs("k1")&"</key1><key2>"&rs("k2")&"</key2><key3>"&rs("k3")&"</key3><key4>"&rs("k4")&"</key4></t"&i&">")

i=i+1

rs.movenext

loop

response.Write("</root>")

其中,rs为数据库记录集对象,用于存放数据库文件中的各条数据记录;rs("key")、rs("t")、rs("k1")、rs("k2")、rs("k3")、rs("k4")用于输出当前试题的正确答案、题干、选项A、选项B、选项C、选项D。上述ASP代码命名为test.asp,转换成的XML文件的结构如图4示(以两道题为例)。

有两点需注意,一是上述ASP代码在保存时一定要选择utf-8编码;二是ASP文件的输出类型一定要是XML格式的,即在代码中设置Response.ContentType="text/xml"。

4.编写AS脚本

有了用户界面文件和动态生态的XML数据文件,就可以在Flash中显示试题了。在Flash中利用AS脚本将动态生成的XML文件加载到Flash中,然后解析XML格式数据,并通过进一步编写脚本将试题显示在Flash界面中。XML文件解析如图4所示,核心脚本如下:

myxml = new XML();

myxml.ignoreWhite = true;

myxml.load("test.asp");

key_arr = new Array();//用于存放每道题目的正确答案

t_arr = new Array();//用于存放每道题目的题干及其答案选项

result_arr = new Array();//用于存放题目序号,作用是随机出题

mykey_arr = new Array();//用于存放用户选择的答案

myxml.onLoad = function(status) {

if (status) {

trace("XML文件加载成功!");

len = myxml.firstChild.childNodes.length;//题目数

tt = myxml.firstChild.childNodes;//节点root下的所有子节点构成了一个数组

for (var i = 0; i<len; i++) {

result_arr[i] = i;//用于存放题目序号,作用是随机出题

key_arr[i] = tt[i].attributes.key;//用于存放每道题目的正确答案

t_arr[i] = new Object();

t_arr[i].question = tt[i].childNodes[0].firstChild;//用于存放每道题目的题干

t_arr[i].k1 = tt[i].childNodes[1].firstChild;//用于存放每道题目的A答案

t_arr[i].k2 = tt[i].childNodes[2].firstChild;//用于存放每道题目的B答案

t_arr[i].k3 = tt[i].childNodes[3].firstChild;//用于存放每道题目的C答案

t_arr[i].k4 = tt[i].childNodes[4].firstChild;//用于存放每道题目的D答案

}

for (var i = 0; i<len; i++) {

//随机排列题目

tmp = random(len);

v1 = result_arr[i];

result_arr[i] = result_arr[tmp];

result_arr[tmp] = v1;

v2 = key_arr[i];

key_arr[i] = key_arr[tmp];

key_arr[tmp] = v2;

}

nextFrame();

} else {

trace("XML文件加载失败!");

}

};

stop();

在Flash界面中显示题目的核心代码如下:

attachMovie("question", "qu", 1,{_x:50,_y:50});//加载库中带有题目题干及其答案选项的影片剪辑

var v1 = 0;

qu.t_txt.selectable=false;

qu.t_txt.text = t_arr[result_arr[v1]].question;//显示题干

qu.k1_txt.text = t_arr[result_arr[v1]].k1;//显示答案选项A

qu.k2_txt.text = t_arr[result_arr[v1]].k2;//显示答案选项B

qu.k3_txt.text = t_arr[result_arr[v1]].k3;//显示答案选项C

qu.k4_txt.text = t_arr[result_arr[v1]].k4;//显示答案选项D

v1++;

qu.num_txt.text="第"+v1+"题";//显示第v1道题

……(代码略)

5.运行

将上文生成的swf文件插入到网页中并在IIS下测试运行。本测验模块在Windows XP+Flash8+IIS5.1下运行通过。

四、结束语

基于Flash和数据库技术构建的网络课程测验模块具有文件体积小、交互性强、表现力丰富、便于维护、测验内容可实时更新等特点,该方法对于网络课程的开发及其它Flash应用有一定的借鉴意义。

参考文献:

[1]林惠文. 用Flash&Asp技术开发无机化学网络习题课件[J].计算机与应用化学,2007(3).

[2]刘海霞. 基于Flash MX的多媒体教学练习课件的制作探索[J].新课程研究·职业教育,2008(5).

[3]徐华. Flash制作动态组卷测试系统的方法[J].教育信息技术,2006(5).

[4]杨双丽,丁革建. 基于Flash的简易智能题库系统开发[J].中国教育信息化,2008(10).

[5]方艳,刘永福. 应用Flash动作脚本语言制作多媒体测试课件[J].广西轻工业学报,2007(1).

[6]张培山. 基于XML的Flash选择题测验模板的研究与实践[J].信息技术教育,2006(12).

[7]赵航涛. 利用Flash和XML制作通用单选练习课件[J].中小学电教,2005(11).

(编辑:隗爽)

猜你喜欢

网络课程数据库
数据库
网络课程设计中学习动力培养策略研究
浅析混合学习模式下的教师培训网络课程设计策略
数据库
数据库
数据库