• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 休闲生活 > 正文

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

    时间:2021-04-08 07:54:56 来源:达达文档网 本文已影响 达达文档网手机站

    摘 要:本文在分析目前基于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).

    (编辑:隗爽)

    相关热词搜索: 测验 模块 构建 数据库技术 课程

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网