999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于XML的Flash選擇題測驗(yàn)?zāi)0宓难芯颗c實(shí)踐

2006-12-31 00:00:00張培山
中國信息技術(shù)教育 2006年12期

在Flash MX Professional 2004中,雖然Flash本身提供了制作測驗(yàn)的模板,但是,一方面,運(yùn)用系統(tǒng)自帶的模板創(chuàng)作練習(xí)課件,需要掌握一定的Flash基礎(chǔ)知識(shí);另一方面,利用模板創(chuàng)作練習(xí),雖然簡便,但不利于后期的維護(hù)與修改,特別是當(dāng)需要同時(shí)添加數(shù)量較多的題目時(shí),測驗(yàn)?zāi)0寰惋@得有些力不從心了。本文介紹一種全新的制作思路:結(jié)合XML技術(shù),將試題信息存放在外部XML文件中,程序運(yùn)行時(shí),通過Flash ActionScript讀取XML文件中的數(shù)據(jù),并呈現(xiàn)給用戶。

設(shè)計(jì)思路

本練習(xí)模板主要由用戶界面文件、數(shù)據(jù)文件和動(dòng)作腳本文件三部分組成。用戶界面文件向使用者顯示試題信息、交互信息(交互按鈕和交互結(jié)果)等;數(shù)據(jù)文件主要用來存放試題內(nèi)容,如題號(hào)、題干、各備選項(xiàng)以及正確答案等,它是一個(gè)獨(dú)立的XML文件;動(dòng)作腳本文件則是用戶界面和數(shù)據(jù)間通信的橋梁,它將XML文檔中的數(shù)據(jù)解析后存放在數(shù)組中,并通過界面文件顯示出來。在Flash文件中,可以用Flash自帶的腳本編輯器編寫動(dòng)作腳本文件。運(yùn)行時(shí),要將上述三個(gè)文件放在同一目錄下。本練習(xí)模板的各部分關(guān)系及其流程如圖1所示。

圖1 模板各部分間的關(guān)系及程序流程

技術(shù)實(shí)現(xiàn)

上文中我們介紹了該練習(xí)模板的設(shè)計(jì)思路。接下來,我們結(jié)合一個(gè)具體的實(shí)例,介紹一下該練習(xí)模板的制作過程。

創(chuàng)建用戶界面文件

1.在Flash舞臺(tái)上,創(chuàng)建如圖2所示的內(nèi)容,各實(shí)例的名稱在圖中已給出。

注意:后綴為_txt的實(shí)例是動(dòng)態(tài)文本框,后綴為_pb的實(shí)例是Button組件,后綴為_rb的實(shí)例是Radio-Button組件。

圖2 各實(shí)例的名稱及布局

2.設(shè)置RadioButton實(shí)例的屬性。選中chA_rb實(shí)例,打開“屬性”面板,在“屬性”面板中選擇“參數(shù)”選項(xiàng)卡,將data參數(shù)的值設(shè)為1。以此類推,chB_rb、chC_rb、chD_rb的data參數(shù)值分別設(shè)為2、3、4,以便在程序中與正確答案進(jìn)行匹配。

3.設(shè)置動(dòng)態(tài)文本框的屬性。分別選中title_txt、chA_txt、chB_txt、chC_txt和chD_txt,在“屬性”面板中將其屬性設(shè)置為“多行”,以滿足題干及選項(xiàng)內(nèi)容過多時(shí)的需要。

數(shù)據(jù)文件

數(shù)據(jù)文件是一個(gè)XML文件,XML語言是Extensible Markup Language的簡稱,它是W3C組織采取簡化SGML的策略而制定的一種可擴(kuò)充的標(biāo)記語言,可以根據(jù)信息提供者的需要自行定義標(biāo)記、屬性名及描述法。在本實(shí)例中,讀者不需要專門學(xué)習(xí)XML語言,只要按照下面的格式創(chuàng)建一個(gè)XML文件即可。如果沒有專門的XML編輯器,可以用記事本來編寫。

<?xml version="1.0"?>

<questions>

<question>

<id>1</id>

<title>世界上第一臺(tái)電子數(shù)字計(jì)算機(jī)誕生于( )</title>

<answerA>1945年</answerA>

<answerB>1946年</answerB>

<answerC>1947年</answerC>

<answerD>1948年</answerD>

<rightanswer>2</rightanswer>

</question>

</questions>

在該XML文件中,<questions>是本XML文件的根元素,一個(gè)XML文件只能有一個(gè)根元素。<id>元素記錄題目的序號(hào);<title>元素記錄題干;<answerA>、<answerB>、<answerC>、<answerD>分別記錄四個(gè)備選項(xiàng);<rightanswer>記錄正確答案。當(dāng)向程序中添加題目時(shí),只需創(chuàng)建若干個(gè)<question>元素,并添加題目序號(hào)、題目名稱、備選項(xiàng)及正確答案即可。

有一點(diǎn)請(qǐng)讀者注意,當(dāng)用記事本編輯XML文件時(shí),保存時(shí)以.xml作為文件的擴(kuò)展名,并在“另存為”對(duì)話框中的“編碼”項(xiàng)中選擇UTF-8。

動(dòng)作腳本文件

我們創(chuàng)建了用戶界面文件和數(shù)據(jù)文件之后,如何才能將數(shù)據(jù)文件中的數(shù)據(jù)在用戶界面文件中顯示出來呢?這就要用到我們將要介紹的動(dòng)作腳本文件了。動(dòng)作腳本文件負(fù)責(zé)導(dǎo)入外部的XML文件,并對(duì)用戶界面文件中的交互事件(如click事件)進(jìn)行處理。

在“文件”菜單中單擊“新建”子菜單,彈出“新建文檔”對(duì)話框,在“常規(guī)”選項(xiàng)卡中選擇“動(dòng)作腳本文件”就可以創(chuàng)建一個(gè)外部動(dòng)作腳本文件,將其命名為action.as。下面是action.as文件中的幾處關(guān)鍵代碼。

1.解析XML文檔。要將外部的XML文檔中的數(shù)據(jù)導(dǎo)入到Flash程序中來,需要調(diào)用XML對(duì)象的load方法來加載外部XML文檔,格式為:questionXML.load("question.xml");

其中questionXML為XML對(duì)象,而question.xml則為外部XML文檔的相對(duì)路徑。

當(dāng)XML文檔加載到Flash程序中后,需要在XML對(duì)象的onLoad事件中對(duì)XML數(shù)據(jù)進(jìn)行解析,并將數(shù)據(jù)存入相應(yīng)的數(shù)組中,其代碼如下:

questionXML.onLoad=function(status):Void

for (vari=0;i<n;i++)

vartempNode:XMLNode=new XMLNode();

tempNode=this.firstChild.childNodes[i];

id_array.push(tempNode.firstChild.firstChild.nodeValue);

title_array.push(tempNode.childNodes[1].firstChild.nodeValue);

chA_array.push(tempNode.childNodes[2].firstChild.nodeValue);

chB_array.push(tempNode.childNodes[3].firstChild.nodeValue);

chC_array.push(tempNode.childNodes[4].firstChild.nodeValue);

chD_array.push(tempNode.childNodes[5].firstChild.nodeValue);

rightAnswer_array.push(tempNode.childNodes[6].firstChild.nodeValue);

2.處理導(dǎo)航按鈕的click事件。單擊導(dǎo)航按鈕,可以在不同的題目之間實(shí)現(xiàn)切換,這里以first_pb為例,其他按鈕的處理方式與此大體相同,只是在細(xì)節(jié)上有些差異,其代碼如下:

function first_pb_click(evt:Object):Void

CN=0;

first_pb.enabled=false;

prev_pb.enabled=false;

next_pb.enabled=true;

last_pb.enabled = true;

cq_txt.text = String(CN + 1);

id_txt.text = String(id_array[CN]);

title_txt.text = title_array[CN];

chA_txt.text = chA_array[CN];

chB_txt.text = chB_array[CN];

chC_txt.text = chC_array[CN];

chD_txt.text = chD_array[CN];

3.處理check_pb的click事件。當(dāng)用戶單擊check_pb按鈕后,可以對(duì)用戶所做的問題進(jìn)行檢查,并給出相應(yīng)的反饋信息,其代碼如下:

function check_pb_click(evt:Object):Void

check_pb.enabled = false;

//判斷是否答對(duì)

if(radioGroup.selectedData == rightAnswer_array[CN])

feedback_txt.text = "恭喜你,你答對(duì)了!繼續(xù)努力!";

else

feedback_txt.text = "真遺憾,你答錯(cuò)了,再仔細(xì)考慮考慮吧!";

4.在該Flash程序中,我們使用了Button組件和RadioButton組件。在Flash MX Professional 2004中,組件使用廣播器/偵聽器模型來處理它們的事件(如click事件等)。因此,我們需要為程序中的組件注冊(cè)偵聽器,來處理它們的事件。下面分別是first_pb和check_pb注冊(cè)偵聽器的代碼:

first_pb.addEventListener("click",first_pb_click);

check_pb.addEventListener("click",check_pb_click);

addEventListener方法有兩個(gè)參數(shù):第一個(gè)參數(shù)是事件的名稱;第二個(gè)參數(shù)是偵聽器對(duì)象,這里我們使用函數(shù)作為click事件的偵聽器對(duì)象。

動(dòng)作腳本文件創(chuàng)建后,在用戶界面文件中,新建一個(gè)action圖層,它位于所有圖層的上方。打開“動(dòng)作”面板,在該圖層的第一幀中輸入如下命令:

#include“action.as”

這樣運(yùn)行本模板就可以了。

本模板在Flash MX Professional 2004下運(yùn)行通過,其運(yùn)行效果如圖3所示。

<img src="/qkimages/xxjy/xxjy200612/xxjy20061228-3-l.jpg" hspace="15" vspace="5" align="">

圖3運(yùn)行效果圖

結(jié)束語

使用Flash制作的選擇題測驗(yàn)?zāi)0寰哂形募w積小、交互性強(qiáng)、表現(xiàn)力豐富、便于維護(hù)與更新等特點(diǎn),特別適合制作成網(wǎng)絡(luò)課件和在線測試題。本文主要介紹使用Flash設(shè)計(jì)交互選擇題測驗(yàn)?zāi)0宓姆椒ǎO(shè)計(jì)要點(diǎn)是利用UI 組件構(gòu)建選擇題模板中的交互控件;利用外部的XML文件存儲(chǔ)試題的數(shù)據(jù);利用動(dòng)作腳本語言實(shí)現(xiàn)程序邏輯結(jié)構(gòu)。當(dāng)需要對(duì)測試題進(jìn)行修改與更新時(shí),只需要修改外部的XML文檔即可。該選擇題測驗(yàn)?zāi)0宀坏梢詥为?dú)使用,而且可以和具體的課程結(jié)合起來,嵌入到網(wǎng)絡(luò)課程中。其他類型的測驗(yàn)題課件(判斷題、填空題等)也可以用類似的方法進(jìn)行設(shè)計(jì)和制作。

主站蜘蛛池模板: 91一级片| 国产大全韩国亚洲一区二区三区| 国产福利小视频高清在线观看| 国产黄色免费看| 免费中文字幕一级毛片| 国产成人无码AV在线播放动漫| 丰满人妻一区二区三区视频| 欧美日韩国产成人高清视频| 亚洲av综合网| 亚洲中文字幕久久精品无码一区| 暴力调教一区二区三区| 亚洲VA中文字幕| 亚洲狠狠婷婷综合久久久久| 亚洲国产成人久久精品软件| 国产AV毛片| 精品少妇人妻av无码久久| 亚洲欧美在线看片AI| 欧美精品H在线播放| 无码又爽又刺激的高潮视频| 国产99欧美精品久久精品久久| 日韩国产无码一区| 亚洲乱伦视频| 五月婷婷伊人网| 国产日本欧美亚洲精品视| 亚洲国产日韩在线成人蜜芽| 国产精品真实对白精彩久久| 97人人模人人爽人人喊小说| 中文字幕久久亚洲一区| 色综合中文综合网| 久久成人免费| 亚洲天堂福利视频| 成人免费网站久久久| 国产哺乳奶水91在线播放| 成人免费午间影院在线观看| 天堂久久久久久中文字幕| 伊人久久大香线蕉aⅴ色| 天天做天天爱夜夜爽毛片毛片| 国产91无码福利在线| 成人午夜网址| 国产日本一线在线观看免费| 2048国产精品原创综合在线| 亚洲天堂免费观看| 99偷拍视频精品一区二区| 国产三级国产精品国产普男人| 91网在线| 久久综合亚洲色一区二区三区| 中文字幕调教一区二区视频| 992tv国产人成在线观看| 亚洲国产中文综合专区在| 国产美女精品一区二区| 在线观看视频99| 人人妻人人澡人人爽欧美一区| 免费在线国产一区二区三区精品| 国产你懂得| 亚洲一区毛片| 中文字幕在线看视频一区二区三区| 亚洲欧美激情小说另类| 欧美国产菊爆免费观看| 亚洲综合香蕉| 色婷婷综合激情视频免费看 | 免费在线不卡视频| 最新加勒比隔壁人妻| 日韩免费毛片视频| 国产精品毛片一区视频播| 久久99精品久久久久纯品| 国产精品久久久精品三级| 国产成人免费视频精品一区二区| 欧美色图久久| 婷五月综合| 国产成人91精品免费网址在线| 日韩第一页在线| 欧美午夜视频在线| 亚洲三级影院| 精品久久久久久中文字幕女| 久久香蕉国产线| 久久久久久久97| 青青青伊人色综合久久| 九九九久久国产精品| 国产精品亚欧美一区二区| 亚洲床戏一区| 亚洲av片在线免费观看| 亚洲欧美极品|