吳瓊香
摘要:針對《多媒體素材與課件制作實(shí)訓(xùn)》課程教學(xué)中存在的問題:制作各類習(xí)題時(shí)學(xué)生不會(huì)編寫腳本的問題,該文提供Flash實(shí)現(xiàn)各種習(xí)題詳細(xì)的設(shè)計(jì)思路、實(shí)現(xiàn)過程及方法,以便對學(xué)生的未來教育教學(xué)工作提供可操作性參考。
關(guān)鍵詞:動(dòng)作腳本;FLASH;設(shè)計(jì);實(shí)現(xiàn);習(xí)題
中圖分類號(hào):G64 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)30-0109-05
Research on Development Process and Method Based on ActionScript3.0 Exercises
WU Qiong-xiang
(Guangdong Preschool Normal College in Maoming, Maoming 525000, China)
Abstract: Aiming at the existing multimedia courseware and the "training" problem in Teaching: students do not write the script of the production of various types of exercises, this paper provides the design and Realization of Flash implementation process and method with various exercises, in order to students in the future teaching work to provide operational reference.
Key words: action script; FLASH; design; implementation; exercises
在各類學(xué)科課程學(xué)習(xí)中總能見到各類習(xí)題,若用Flash設(shè)計(jì)習(xí)題則提高學(xué)習(xí)效率,用flash設(shè)計(jì)的習(xí)題不用教師改,由Flash批改兼打分并能及時(shí)反饋。這樣,學(xué)生在自主學(xué)習(xí)過程中有自己考核自己的機(jī)會(huì),及時(shí)反饋學(xué)習(xí)情況,知道自己在哪方面還做得不夠好,從而加強(qiáng)學(xué)習(xí),節(jié)省時(shí)間,提高學(xué)習(xí)效率,使課程學(xué)習(xí)更全面;也省去教師批改作業(yè)的麻煩。中小學(xué)教師若能掌握在Flash中設(shè)計(jì)習(xí)題,對未來的教學(xué)將是事半功倍。我校師范生在二年級(jí)開設(shè)了《多媒體素材與課件制作實(shí)訓(xùn)》課程,此課程的教學(xué)目標(biāo)就是制作多媒體教學(xué)課件,在課程中有一內(nèi)容正是習(xí)題的設(shè)計(jì)。在各種考試中,常見的題型無非就是選和寫,即選擇題、填寫作題。本文針對選擇題、填空題,連線題結(jié)合我校師范生專業(yè)的學(xué)生實(shí)際情況,詳細(xì)闡述如何利用Flash設(shè)計(jì)選擇題的實(shí)現(xiàn)方法,使業(yè)師范生的教育技術(shù)水平更上一層樓。
1 單項(xiàng)選擇題的設(shè)計(jì)與實(shí)現(xiàn)
1.1 設(shè)計(jì)單項(xiàng)選擇題
1.1.1 利用透明按鈕設(shè)計(jì)單項(xiàng)選擇題
幾乎每個(gè)學(xué)科的練習(xí)題都有單項(xiàng)選擇題,在Flash實(shí)現(xiàn)單項(xiàng)選擇題的設(shè)計(jì)方法步驟如下:
1) 建立靜態(tài)文本,把題目及答案制作成靜態(tài)文本,排好版。
2) 制作按鈕元件,在舞臺(tái)上創(chuàng)建4個(gè)按鈕實(shí)例,四個(gè)實(shí)例的透明度都設(shè)為0%;4個(gè)透明按鈕分別蓋住4個(gè)答案選項(xiàng),4個(gè)按鈕實(shí)例名分別為answer1_btn,answer2_btn,answer3_btn,answer4_btn。再做一個(gè)redo按鈕元件,在舞臺(tái)上創(chuàng)建一個(gè)實(shí)例,其實(shí)例名為redo_btn。
3) 建立一個(gè)動(dòng)態(tài)文本,實(shí)例名名為answer1_txt。
4) 建立一個(gè)圖層名為Actions,該圖層的第1幀上的腳本如下所示:
answer1_btn.addEventListener(MouseEvent.CLICK, DaAn);
answer2_btn.addEventListener(MouseEvent.CLICK, CuoWu);
answer3_btn.addEventListener(MouseEvent.CLICK, CuoWu);
answer4_btn.addEventListener(MouseEvent.CLICK, CuoWu);
redo_btn.addEventListener(MouseEvent.CLICK, ReDo);
function DaAn(event:MouseEvent):void
{answer_txt1.text="回答正確";}//動(dòng)態(tài)文本框要選擇設(shè)備字體。
function CuoWu(event:MouseEvent):void
{answer_txt1.text="回答錯(cuò)誤,加油!";}
function ReDo(event:MouseEvent):void
{answer_txt1.text="";}
1.1.2 利用RadioButton組件設(shè)計(jì)單項(xiàng)選擇題
利用RadioButton組件實(shí)現(xiàn)單項(xiàng)選擇題設(shè)計(jì)的方法步驟如下:
1) 在舞臺(tái)上建立靜態(tài)文本,把題目及答案制作成靜態(tài)文本,排好版;
2) 點(diǎn)擊[窗口]-[組件]-[User Interface]-拉出4個(gè)[RadioButton]組件;
3) 四個(gè)RadioButton實(shí)例名分別為A1,B1,C1,D1,改四個(gè)RadioButton組件參數(shù)的label屬性分別為A,B,C,D;
4) 在舞臺(tái)上建立動(dòng)態(tài)文本,實(shí)例名名為answer2_txt;
5) 制作一個(gè)影片剪輯播放聲音,導(dǎo)入兩個(gè)音頻文件,一個(gè)音頻播放太棒了,一個(gè)播放加油;第1幀空白并在此幀寫上腳本stop,停在此幀,第5幀放第一個(gè)聲音“太棒了”,第8幀空白幀并寫上腳本stop,停在此幀,第10幀放第二個(gè)聲音“加油”。endprint
詳細(xì)制作此影片剪輯中的方法步驟如下:
第1幀代碼如下:
stop();
第5和第10幀分別放置兩個(gè)音頻的方法如下:
首先導(dǎo)入兩個(gè)音頻在庫中,創(chuàng)建AS鏈接如圖1所示:
再對兩個(gè)聲音的屬性進(jìn)行AS鏈接,鏈接分別為TaiBangLe,JiaYou;
在第5幀寫代碼如下:
var taibangle:Sound=new TaiBangLe();
taibangle.play();
第8幀代碼如下:
Stop();
第10幀代碼如下:
var jiayou:Sound=new JiaYou();
jiayou.play();
在第15幀插入普通幀,影片剪輯時(shí)間軸如圖2所示:
將此影片剪輯拖放到舞臺(tái),實(shí)例名為shengyinhuida_mc;
6) 在Actions圖層相應(yīng)的幀上輸入以下代碼即可:
function Zq(event:MouseEvent):void{
shengyinhuida_mc.gotoAndPlay(5);
answer2_txt.text="太棒了!";}
function Cw(event:MouseEvent):void{
shengyinhuida_mc.gotoAndPlay(10);
answer2_txt.text="加油!";}
A1.addEventListener(MouseEvent.CLICK, Cw);
B1.addEventListener(MouseEvent.CLICK, Cw);
C1.addEventListener(MouseEvent.CLICK, Zq);
D1.addEventListener(MouseEvent.CLICK, Cw);
1.2 利用RadioButton組件設(shè)計(jì)單項(xiàng)選擇測驗(yàn)題
在自主學(xué)習(xí)環(huán)境下,用Flash設(shè)計(jì)的自測題可立即呈現(xiàn)得分,讓學(xué)生的自主學(xué)習(xí)更有效率,學(xué)生可以選擇重新測試加強(qiáng)記憶。自測題選擇題的設(shè)計(jì)原則是:全屏幕進(jìn)行測試,最后一幀顯示測試得的總分。
其設(shè)計(jì)詳細(xì)方法和步驟如下:
Flash制作自測題至少需要4個(gè)圖層:Actions圖層(用于編寫代碼),按鈕圖層(放置按鈕實(shí)例),題目(放置題目和RadioButton組件),動(dòng)態(tài)文本框圖層(用于顯示測試的總得分,動(dòng)態(tài)文本框出現(xiàn)在最后兩幀,此圖層的前面都是空白幀),除此四個(gè)圖層外,還可以根據(jù)修飾的需要增加其他的圖層比如放置背景的圖層。
第1幀上的制作如下:
題目圖層上用靜態(tài)文本制作好題目并排好版,在相應(yīng)的四個(gè)答案選項(xiàng)前面,放置四個(gè)RadioButton組件和題目一起排好版。四個(gè)RadioButton的實(shí)例名分別是a_1,b_1,c_1,d_1;它們的lebal屬性分別設(shè)置為A,B,C,D。他們的組名是一樣的,比如都是Group1
在按鈕圖層上,放置一個(gè)按鈕,實(shí)例名為next1_btn。
Actions圖層的第一幀代碼如下:
stop();//停止在此幀。
stage.displayState=StageDisplayState.FULL_SCREEN;//全屏幕顯示;
var fenshu:int = 0;//設(shè)置原始分?jǐn)?shù)為0;
next1_btn.addEventListener(MouseEvent.CLICK,totalfen);//單擊next1_btn就執(zhí)行totalfen函數(shù);
function totalfen(event:MouseEvent):void
{if (a_1.selected == true)//如果A選項(xiàng)被選中,執(zhí)行下面大括號(hào)的代碼,否則執(zhí)行else后面大會(huì)括號(hào)代碼。
{fenshu +=2;// 變量fenshu增加2
nextFrame();}//跳到第下一幀,即下一題。
else
{fenshu +=0;//變量fenshu保持原值;
nextFrame();}}跳到第下一幀,即下一題。
第一幀的效果如圖3所示:
第二幀的制作只需要對第1幀進(jìn)行稍微修改即可,詳細(xì)制作方法如下:
在題目圖層的第2幀插入關(guān)鍵幀(其實(shí)是延續(xù)了第1幀的內(nèi)容),只需要把英語題目文本改一下,再把四個(gè)RadioButton的實(shí)例名分別改為a_2,b_2,c_2,d_2,table標(biāo)簽不變。組名改為Group2。
在按鈕圖層的第2幀插入關(guān)鍵幀,把按鈕實(shí)例名改為next2_btn;
Actions第2幀的代碼只稍微改實(shí)例名即可,詳細(xì)如下:
next2_btn.addEventListener(MouseEvent.CLICK,totalfen2);
function totalfen2(event:MouseEvent):void
{if (a_2.selected == true)//若正確答案A選項(xiàng)被選中,則執(zhí)行后面大括號(hào)代碼,否則執(zhí)行else后面大會(huì)括號(hào)代碼。
{fenshu +=2;
nextFrame();}
else
{fenshu += 0;
nextFrame();}}endprint
這樣就完成的自測題第2幀的制作,后面幀的制作方法一樣,就不一一講解,最后2幀增加了一個(gè)動(dòng)態(tài)文本框圖層,顯示總得分。下面詳細(xì)講一下最后兩幀的制作方法。
第50幀的詳細(xì)制作方法:
在題目圖層上插入關(guān)鍵幀,修改英語選擇題的題目文本,四個(gè)RadioButton的實(shí)例名分別改為a_50,b_50,c_50,d_50,table標(biāo)簽不變,四個(gè)RadioButton的組名都是Group50。在該圖層的第51幀插入空白關(guān)鍵幀。
在按鈕圖層的第50幀插入關(guān)鍵幀,把按鈕實(shí)例名改為next50_btn。
創(chuàng)建一個(gè)圖層名為動(dòng)態(tài)文本框,在該圖層的舞臺(tái)上創(chuàng)建一動(dòng)態(tài)文本框,實(shí)例名為my_total,在該圖層的第51幀插入普通幀。
Actions圖層的第50幀的代碼如下:
next50_btn.addEventListener(MouseEvent.CLICK,totalfen50);
function totalfen50(event:MouseEvent):void
{if (c_50.selected == true)//若正確答案C項(xiàng)選中
{fenshu +=2;
my_total.text="本次測試您的得分是:"+String(fenshu)+"分";
nextFrame();}//此代碼執(zhí)行后跳到第51幀,題目圖層的第51幀是空白幀;
else
{fenshu +=0;
my_total.text="本次測試您的得分是:"+String(fenshu)+"分";
nextFrame();}}
自測題如果是教師用于學(xué)生考試用的,那么在按鈕的第51幀也插入空白關(guān)鍵幀即可。
若是用于學(xué)生自主學(xué)習(xí)環(huán)境中,可設(shè)計(jì)成由學(xué)生自主選擇是否重新測試,那么按鈕的第51幀插入關(guān)鍵幀,把按鈕實(shí)例改為redo_btn,Actions圖層的第51幀代碼只需編寫成點(diǎn)擊該按鈕跳轉(zhuǎn)回到第一幀即可。除此外還可以在改圖層的第51幀增加其他按鈕,比如退出按鈕,返回課件首頁等等諸如之類的按鈕。
2 利用CheckBox組件實(shí)現(xiàn)多項(xiàng)選擇題的設(shè)計(jì)
1) 在舞臺(tái)上建立靜態(tài)文本,把題目及答案制作成靜態(tài)文本,排好版;
2) 點(diǎn)擊[窗口]-[組件]-[User Interface]-拖5個(gè)[CheckBox]到舞臺(tái)上;
3) 5個(gè)CheckBox實(shí)例名分別為A1,B1,C1,D1,E1等,改CheckBox組件參數(shù)的label屬性,為ABCDE等選項(xiàng)。
4) 在舞臺(tái)上建立動(dòng)態(tài)文本,實(shí)例名名為answer2_txt;
5) 制作一個(gè)影片剪輯播放聲音,導(dǎo)入兩個(gè)音頻文件,一個(gè)音頻播放太棒了,一個(gè)播放加油;第1幀空白并在此幀寫上腳本stop,停在此幀,第5幀放第一個(gè)聲音“太棒了”,第8幀空白幀并寫上腳本stop,停在此幀,第10幀放第二個(gè)聲音“加油”。詳細(xì)制作方法參考利用RadioButton制作單項(xiàng)選擇題的步驟。
6) 制作一個(gè)提交按鈕,實(shí)例名為tjCB_btn;
7) Actions圖層上相應(yīng)幀上的腳本如下所示:
tjCB_btn.addEventListener(MouseEvent.CLICK, CheckBox_tj);
function CheckBox_tj(event:MouseEvent):void
{if(A2.selected==true&&B2.selected==false&&C2.selected==true&&D2.selected==true&&E2.selected==false){
answer2_txt.text="太棒了";
SYHD.gotoAndPlay(5);}
else{
answer2_txt.text="加油";
SYHD.gotoAndPlay(30);}}
3 填空題的實(shí)現(xiàn)
3.1 選詞填空題設(shè)計(jì)與實(shí)現(xiàn)
選詞填空題利用鼠標(biāo)拖放詞語實(shí)現(xiàn)選詞效果,鼠標(biāo)拖動(dòng)詞組在任何區(qū)域內(nèi)釋放,當(dāng)點(diǎn)擊提交按鈕時(shí)反饋答題的分?jǐn)?shù),也可以在答題處反饋紅色的√或紅色×,讓答題者知道自己的答題情況。
其基本程序設(shè)計(jì)代碼如下:
function 開始拖動(dòng)函數(shù)名(event:MouseEvent):void
{詞組實(shí)例名.startDrag();}
function 停止拖動(dòng)函數(shù)名(event:MouseEvent):void
{詞組實(shí)例名.stopDrag();}
判斷選詞是否正確,要制作一個(gè)透明的影片剪輯實(shí)例,賦予它相應(yīng)的實(shí)例名,置于答題空白處,判斷它是否與相應(yīng)正確詞語相碰,若相碰了就正確不相碰則不正確,使用的程序?yàn)檫x擇程序結(jié)構(gòu)if...else...
if(碰撞)
{//滿足碰撞執(zhí)行的語句}
else
{//不滿足碰撞執(zhí)行的語句}
3.2 填空題——填寫題的設(shè)計(jì)與實(shí)現(xiàn)
在Flash中利用輸入文本類型可以實(shí)現(xiàn)填寫練習(xí)題。
若要反饋出填空題是否答題正確,則賦予輸入文本框?qū)嵗?,判斷其?nèi)容是否是正確答案的內(nèi)容,其程序設(shè)計(jì)為選擇程序結(jié)構(gòu)if...else...
If(輸入文本框?qū)嵗?text==”正確答案”||輸入文本框?qū)嵗?text==”正確答案”)
{//滿足條件執(zhí)行的語句}/ /若只有一個(gè)正確答案可省略||及其后面的內(nèi)容endprint
else
{//不滿足條件執(zhí)行的語句}
實(shí)現(xiàn)的方法步驟:
1) 建立一個(gè)圖層放置題目(使用靜態(tài)文本)。
2) 在題目上方建立一個(gè)放置輸入文本框圖層。放置四個(gè)輸入文本框,實(shí)例名稱分別為:sr1_txt,sr2_txt,sr3_txt,sr4_txt。另外再放置2個(gè)動(dòng)態(tài)文本框,實(shí)例名稱分別是answer1_txt,answer2_txt。
3) 新建一個(gè)影片剪輯的元件,內(nèi)部含有兩幀,第1幀放置√,第2幀放置×。在第1幀stop();
4) 建立一個(gè)圖層放置4個(gè)含有√和×的影片剪輯。實(shí)例名稱分別是gc1_mc,gc2_mc,gc3_mc,gc4_mc。
5) 建立一個(gè)按鈕圖層,放置三個(gè)按鈕如下圖所示,按鈕名稱分別是sumbit_btn,redo_btn,help_btn。
6) 建立Actions圖層,代碼如下:
import flash.events.MouseEvent;
function TKT(event:MouseEvent):void
{if(sr1_txt.text=="too much")
{gc1_mc.gotoAndStop(1);
gc1_mc.visible=true;}
else
{gc1_mc.gotoAndStop(2);
gc1_mc.visible=true;}
if(sr2_txt.text=="much too")
{gc2_mc.gotoAndStop(1);
gc2_mc.visible=true;}
else
{gc2_mc.gotoAndStop(2);
gc2_mc.visible=true;}
if(sr3_txt.text=="looked")
{gc3_mc.gotoAndStop(1);
gc3_mc.visible=true;}
else
{gc3_mc.gotoAndStop(2);
gc3_mc.visible=true;}
if(sr4_txt.text=="find")
{gc4_mc.gotoAndStop(1);
gc4_mc.visible=true;
}
else
{gc4_mc.gotoAndStop(2);
gc4_mc.visible=true;}}
sumbit_btn.addEventListener(MouseEvent.CLICK,TKT);
redo_btn.addEventListener(MouseEvent.CLICK, REDO);
function REDO(event:MouseEvent):void
{gc1_mc.visible=false;
gc2_mc.visible=false;
gc3_mc.visible=false;
gc4_mc.visible=false;
sr1_txt.text="";
sr2_txt.text="";
sr3_txt.text="";
sr4_txt.text="";
answer1_txt.text="";
answer2_txt.text="";}
help_btn.addEventListener(MouseEvent.CLICK, HELP);
function HELP(event:MouseEvent):void
{answer1_txt.text="1、too much much too";
answer2_txt.text="2、looked find";}
測試影片效果如圖5所示。
輸入相應(yīng)一些內(nèi)容,單擊sumbit_btn效果如圖6所示。
4 連一連習(xí)題的設(shè)計(jì)與實(shí)現(xiàn)
連一連練習(xí)題一般有兩組內(nèi)容,把兩組的內(nèi)容分別制作成相應(yīng)的影片剪輯,并賦予實(shí)例名。左邊實(shí)例名分別是a1,a2,a3,a4,右邊正確對應(yīng)左邊的影片剪輯的實(shí)例名分別是b1,b2,b3,b4;顯示是否連線正確的影片剪輯動(dòng)畫的實(shí)例名分別為da1,da2,da3,da4。
其代碼如下:
import flash.display.Shape;
var drawing:Boolean = false;
da1.alpha = 0;// da1紅色√或紅色×的影片剪輯的實(shí)例名,此處設(shè)置其透明度為0;
da2.alpha = 0;
da3.alpha = 0;
da4.alpha = 0;
var curBtn:String;
var streak:Shape = new Shape(); //創(chuàng)建線條對象
addChild(streak); //添加到顯示列表
var colour:Number = 0xccff33; //設(shè)置線條顏色
var thick:int = 2; //畫筆粗細(xì)
var start_x:Number; //畫筆起點(diǎn)x值endprint
var start_y:Number; //畫筆起點(diǎn)y值
var line1:Shape = new Shape();
var line2:Shape = new Shape();
var line3:Shape = new Shape();
var line4:Shape = new Shape();
addChild(line1);
addChild(line2);
addChild(line3);
addChild(line4);
a1.addEventListener(MouseEvent.MOUSE_DOWN, startDrawing);
a2.addEventListener(MouseEvent.MOUSE_DOWN, startDrawing);
a3.addEventListener(MouseEvent.MOUSE_DOWN, startDrawing);
a4.addEventListener(MouseEvent.MOUSE_DOWN, startDrawing);
function startDrawing(event:MouseEvent):void
{curBtn = event.currentTarget.name;
start_x = event.currentTarget.x;
start_y = event.currentTarget.y;
drawing = true;}
stage.addEventListener(MouseEvent.MOUSE_MOVE, moving);
function moving(event:MouseEvent):void
{if( drawing == true )
{streak.graphics.clear();
streak.graphics.lineStyle(thick, colour);
streak.graphics.moveTo(start_x, start_y);
streak.graphics.lineTo(mouseX, mouseY);}}
stage.addEventListener(MouseEvent.MOUSE_UP, stopDrawing);
function stopDrawing(event:MouseEvent):void
{if( b1.hitTestPoint(mouseX, mouseY) && drawing == true )
{streak.graphics.clear();
line1.graphics.lineStyle(thick, colour);
line1.graphics.moveTo(start_x, start_y);
line1.graphics.lineTo(b1.x, b1.y);
this[curBtn].removeEventListener(MouseEvent.MOUSE_DOWN,startDrawing);
drawing = false;
if(curBtn == "a1")
{da1.gotoAndStop(2);}}
else if( b2.hitTestPoint(mouseX, mouseY) && drawing == true )
{streak.graphics.clear();
line2.graphics.lineStyle(thick, colour);
line2.graphics.moveTo(start_x, start_y);
line2.graphics.lineTo(b2.x, b2.y);
this[curBtn].removeEventListener(MouseEvent.MOUSE_DOWN,startDrawing);
drawing = false;
if(curBtn == "a2")
{da2.gotoAndStop(2);}}
else if( b3.hitTestPoint(mouseX, mouseY) && drawing == true )
{streak.graphics.clear();
line3.graphics.lineStyle(thick, colour);
line3.graphics.moveTo(start_x, start_y);
line3.graphics.lineTo(b3.x, b3.y);
this[curBtn].removeEventListener(MouseEvent.MOUSE_DOWN,startDrawing);
drawing = false;
if(curBtn == "a3")
{da3.gotoAndStop(2);}}
else if( b4.hitTestPoint(mouseX, mouseY) && drawing == true )
{streak.graphics.clear();endprint
line4.graphics.lineStyle(thick, colour);
line4.graphics.moveTo(start_x, start_y);
line4.graphics.lineTo(b4.x, b4.y);
this[curBtn].removeEventListener(MouseEvent.MOUSE_DOWN,startDrawing);
drawing = false;
if(curBtn == "a4")
{da4.gotoAndStop(2);}}
else
{drawing = false;
streak.graphics.clear();}}
clear_btn.addEventListener(MouseEvent.CLICK,ClearF);
function ClearF(e:MouseEvent):void
{for(var i=1; i<5; i++)
{this["line"+i].graphics.clear();
this["da"+i].alpha = 0;
this["da"+i].gotoAndStop(1);
this["a"+i].addEventListener(MouseEvent.MOUSE_DOWN, startDrawing);}}
check_btn.addEventListener(MouseEvent.CLICK,CheckF);
function CheckF(e:MouseEvent):void
for(var i=1; i<5; i++)
{this["da"+i].alpha = 1; }}
5 結(jié)束語
新型習(xí)題模式是信息時(shí)代很流行的學(xué)習(xí)方式,也必將成為新世紀(jì)學(xué)校教育教學(xué)主要的考核方法。 它不僅給予學(xué)生及時(shí)有效的課程幫助輔導(dǎo),而且加強(qiáng)了老師對學(xué)生的管理,節(jié)省了教師大量時(shí)間,勢在必行。
基于Flash的多媒課件制作內(nèi)容豐富、交互性強(qiáng),多媒體課件的開發(fā)和運(yùn)用,激發(fā)了學(xué)生學(xué)習(xí)的積極性,提高了學(xué)習(xí)的效率,培養(yǎng)了學(xué)生的創(chuàng)新精神和實(shí)踐能力,體現(xiàn)了計(jì)算機(jī)輔助教學(xué)的優(yōu)越性。endprint