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

基于XML的Flash選擇題測驗?zāi)0宓难芯颗c實踐

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

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

設(shè)計思路

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

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

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

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

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

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

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

圖2 各實例的名稱及布局

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

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

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

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

<?xml version="1.0"?>

<questions>

<question>

<id>1</id>

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

<answerA>1945年</answerA>

<answerB>1946年</answerB>

<answerC>1947年</answerC>

<answerD>1948年</answerD>

<rightanswer>2</rightanswer>

</question>

</questions>

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

有一點請讀者注意,當用記事本編輯XML文件時,保存時以.xml作為文件的擴展名,并在“另存為”對話框中的“編碼”項中選擇UTF-8。

動作腳本文件

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

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

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

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

當XML文檔加載到Flash程序中后,需要在XML對象的onLoad事件中對XML數(shù)據(jù)進行解析,并將數(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)航按鈕,可以在不同的題目之間實現(xiàn)切換,這里以first_pb為例,其他按鈕的處理方式與此大體相同,只是在細節(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事件。當用戶單擊check_pb按鈕后,可以對用戶所做的問題進行檢查,并給出相應(yīng)的反饋信息,其代碼如下:

function check_pb_click(evt:Object):Void

check_pb.enabled = false;

//判斷是否答對

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

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

else

feedback_txt.text = "真遺憾,你答錯了,再仔細考慮考慮吧!";

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

first_pb.addEventListener("click",first_pb_click);

check_pb.addEventListener("click",check_pb_click);

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

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

#include“action.as”

這樣運行本模板就可以了。

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

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

圖3運行效果圖

結(jié)束語

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

主站蜘蛛池模板: 无码中文字幕加勒比高清| 日本欧美成人免费| 国产色伊人| 国产综合无码一区二区色蜜蜜| 国产精品毛片一区视频播 | 午夜精品一区二区蜜桃| 日韩色图在线观看| 国产小视频网站| 亚洲国产精品日韩av专区| 免费精品一区二区h| 无码中文AⅤ在线观看| 啪啪永久免费av| av午夜福利一片免费看| 欧美在线一二区| 国产一级视频久久| 精品国产91爱| 国产人成午夜免费看| 国产第四页| 五月天天天色| 91区国产福利在线观看午夜| 欧美不卡在线视频| 国产成人免费| 亚洲精品天堂自在久久77| 在线观看免费黄色网址| 久久综合伊人77777| 亚洲综合婷婷激情| 日韩精品欧美国产在线| 欧美精品1区| 亚州AV秘 一区二区三区| 亚洲乱码精品久久久久..| 尤物精品视频一区二区三区| 亚洲色图另类| 亚洲永久精品ww47国产| 91精品免费高清在线| 欧美精品伊人久久| aa级毛片毛片免费观看久| 亚洲天堂网2014| 国产第三区| 九色国产在线| 亚洲男人的天堂在线| 久久精品人人做人人爽| 午夜激情婷婷| 色偷偷男人的天堂亚洲av| 人人爽人人爽人人片| 99热这里只有精品2| 亚洲成人精品久久| 狠狠色香婷婷久久亚洲精品| 欧美色亚洲| 国产噜噜噜视频在线观看 | 久久久久久高潮白浆| 成人韩免费网站| 国产永久免费视频m3u8| 日本一区高清| A级毛片高清免费视频就| 无码aaa视频| 深爱婷婷激情网| 91欧洲国产日韩在线人成| 国产乱人免费视频| 欧美综合一区二区三区| 久久久久国产精品嫩草影院| 免费国产高清视频| 欧美一区二区三区香蕉视| 国产成人综合亚洲欧洲色就色| 国产地址二永久伊甸园| 91在线精品免费免费播放| 国产波多野结衣中文在线播放| 久草视频中文| 亚州AV秘 一区二区三区| 97综合久久| 天堂va亚洲va欧美va国产| 中文字幕亚洲乱码熟女1区2区| 九九热在线视频| 波多野结衣一区二区三区四区 | 国产午夜无码专区喷水| 亚洲日本韩在线观看| 国产成人精彩在线视频50| 久久综合五月婷婷| 久久精品亚洲热综合一区二区| 日韩无码视频网站| 国产成人福利在线| 97久久人人超碰国产精品| 亚洲色图欧美在线|