国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ActionScript3.0習(xí)題的開發(fā)過程及方法研究

2017-11-17 20:31吳瓊香
電腦知識與技術(shù) 2017年30期
關(guān)鍵詞:實現(xiàn)習(xí)題設(shè)計

吳瓊香

摘要:針對《多媒體素材與課件制作實訓(xùn)》課程教學(xué)中存在的問題:制作各類習(xí)題時學(xué)生不會編寫腳本的問題,該文提供Flash實現(xiàn)各種習(xí)題詳細的設(shè)計思路、實現(xiàn)過程及方法,以便對學(xué)生的未來教育教學(xué)工作提供可操作性參考。

關(guān)鍵詞:動作腳本;FLASH;設(shè)計;實現(xiàn);習(xí)題

中圖分類號:G64 文獻標識碼:A 文章編號: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è)計習(xí)題則提高學(xué)習(xí)效率,用flash設(shè)計的習(xí)題不用教師改,由Flash批改兼打分并能及時反饋。這樣,學(xué)生在自主學(xué)習(xí)過程中有自己考核自己的機會,及時反饋學(xué)習(xí)情況,知道自己在哪方面還做得不夠好,從而加強學(xué)習(xí),節(jié)省時間,提高學(xué)習(xí)效率,使課程學(xué)習(xí)更全面;也省去教師批改作業(yè)的麻煩。中小學(xué)教師若能掌握在Flash中設(shè)計習(xí)題,對未來的教學(xué)將是事半功倍。我校師范生在二年級開設(shè)了《多媒體素材與課件制作實訓(xùn)》課程,此課程的教學(xué)目標就是制作多媒體教學(xué)課件,在課程中有一內(nèi)容正是習(xí)題的設(shè)計。在各種考試中,常見的題型無非就是選和寫,即選擇題、填寫作題。本文針對選擇題、填空題,連線題結(jié)合我校師范生專業(yè)的學(xué)生實際情況,詳細闡述如何利用Flash設(shè)計選擇題的實現(xiàn)方法,使業(yè)師范生的教育技術(shù)水平更上一層樓。

1 單項選擇題的設(shè)計與實現(xiàn)

1.1 設(shè)計單項選擇題

1.1.1 利用透明按鈕設(shè)計單項選擇題

幾乎每個學(xué)科的練習(xí)題都有單項選擇題,在Flash實現(xiàn)單項選擇題的設(shè)計方法步驟如下:

1) 建立靜態(tài)文本,把題目及答案制作成靜態(tài)文本,排好版。

2) 制作按鈕元件,在舞臺上創(chuàng)建4個按鈕實例,四個實例的透明度都設(shè)為0%;4個透明按鈕分別蓋住4個答案選項,4個按鈕實例名分別為answer1_btn,answer2_btn,answer3_btn,answer4_btn。再做一個redo按鈕元件,在舞臺上創(chuàng)建一個實例,其實例名為redo_btn。

3) 建立一個動態(tài)文本,實例名名為answer1_txt。

4) 建立一個圖層名為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="回答正確";}//動態(tài)文本框要選擇設(shè)備字體。

function CuoWu(event:MouseEvent):void

{answer_txt1.text="回答錯誤,加油!";}

function ReDo(event:MouseEvent):void

{answer_txt1.text="";}

1.1.2 利用RadioButton組件設(shè)計單項選擇題

利用RadioButton組件實現(xiàn)單項選擇題設(shè)計的方法步驟如下:

1) 在舞臺上建立靜態(tài)文本,把題目及答案制作成靜態(tài)文本,排好版;

2) 點擊[窗口]-[組件]-[User Interface]-拉出4個[RadioButton]組件;

3) 四個RadioButton實例名分別為A1,B1,C1,D1,改四個RadioButton組件參數(shù)的label屬性分別為A,B,C,D;

4) 在舞臺上建立動態(tài)文本,實例名名為answer2_txt;

5) 制作一個影片剪輯播放聲音,導(dǎo)入兩個音頻文件,一個音頻播放太棒了,一個播放加油;第1幀空白并在此幀寫上腳本stop,停在此幀,第5幀放第一個聲音“太棒了”,第8幀空白幀并寫上腳本stop,停在此幀,第10幀放第二個聲音“加油”。endprint

詳細制作此影片剪輯中的方法步驟如下:

第1幀代碼如下:

stop();

第5和第10幀分別放置兩個音頻的方法如下:

首先導(dǎo)入兩個音頻在庫中,創(chuàng)建AS鏈接如圖1所示:

再對兩個聲音的屬性進行AS鏈接,鏈接分別為TaiBangLe,JiaYou;

在第5幀寫代碼如下:

var taibangle:Sound=new TaiBangLe();

taibangle.play();

第8幀代碼如下:

Stop();

第10幀代碼如下:

var jiayou:Sound=new JiaYou();

jiayou.play();

在第15幀插入普通幀,影片剪輯時間軸如圖2所示:

將此影片剪輯拖放到舞臺,實例名為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è)計單項選擇測驗題

在自主學(xué)習(xí)環(huán)境下,用Flash設(shè)計的自測題可立即呈現(xiàn)得分,讓學(xué)生的自主學(xué)習(xí)更有效率,學(xué)生可以選擇重新測試加強記憶。自測題選擇題的設(shè)計原則是:全屏幕進行測試,最后一幀顯示測試得的總分。

其設(shè)計詳細方法和步驟如下:

Flash制作自測題至少需要4個圖層:Actions圖層(用于編寫代碼),按鈕圖層(放置按鈕實例),題目(放置題目和RadioButton組件),動態(tài)文本框圖層(用于顯示測試的總得分,動態(tài)文本框出現(xiàn)在最后兩幀,此圖層的前面都是空白幀),除此四個圖層外,還可以根據(jù)修飾的需要增加其他的圖層比如放置背景的圖層。

第1幀上的制作如下:

題目圖層上用靜態(tài)文本制作好題目并排好版,在相應(yīng)的四個答案選項前面,放置四個RadioButton組件和題目一起排好版。四個RadioButton的實例名分別是a_1,b_1,c_1,d_1;它們的lebal屬性分別設(shè)置為A,B,C,D。他們的組名是一樣的,比如都是Group1

在按鈕圖層上,放置一個按鈕,實例名為next1_btn。

Actions圖層的第一幀代碼如下:

stop();//停止在此幀。

stage.displayState=StageDisplayState.FULL_SCREEN;//全屏幕顯示;

var fenshu:int = 0;//設(shè)置原始分數(shù)為0;

next1_btn.addEventListener(MouseEvent.CLICK,totalfen);//單擊next1_btn就執(zhí)行totalfen函數(shù);

function totalfen(event:MouseEvent):void

{if (a_1.selected == true)//如果A選項被選中,執(zhí)行下面大括號的代碼,否則執(zhí)行else后面大會括號代碼。

{fenshu +=2;// 變量fenshu增加2

nextFrame();}//跳到第下一幀,即下一題。

else

{fenshu +=0;//變量fenshu保持原值;

nextFrame();}}跳到第下一幀,即下一題。

第一幀的效果如圖3所示:

第二幀的制作只需要對第1幀進行稍微修改即可,詳細制作方法如下:

在題目圖層的第2幀插入關(guān)鍵幀(其實是延續(xù)了第1幀的內(nèi)容),只需要把英語題目文本改一下,再把四個RadioButton的實例名分別改為a_2,b_2,c_2,d_2,table標簽不變。組名改為Group2。

在按鈕圖層的第2幀插入關(guān)鍵幀,把按鈕實例名改為next2_btn;

Actions第2幀的代碼只稍微改實例名即可,詳細如下:

next2_btn.addEventListener(MouseEvent.CLICK,totalfen2);

function totalfen2(event:MouseEvent):void

{if (a_2.selected == true)//若正確答案A選項被選中,則執(zhí)行后面大括號代碼,否則執(zhí)行else后面大會括號代碼。

{fenshu +=2;

nextFrame();}

else

{fenshu += 0;

nextFrame();}}endprint

這樣就完成的自測題第2幀的制作,后面幀的制作方法一樣,就不一一講解,最后2幀增加了一個動態(tài)文本框圖層,顯示總得分。下面詳細講一下最后兩幀的制作方法。

第50幀的詳細制作方法:

在題目圖層上插入關(guān)鍵幀,修改英語選擇題的題目文本,四個RadioButton的實例名分別改為a_50,b_50,c_50,d_50,table標簽不變,四個RadioButton的組名都是Group50。在該圖層的第51幀插入空白關(guān)鍵幀。

在按鈕圖層的第50幀插入關(guān)鍵幀,把按鈕實例名改為next50_btn。

創(chuàng)建一個圖層名為動態(tài)文本框,在該圖層的舞臺上創(chuàng)建一動態(tài)文本框,實例名為my_total,在該圖層的第51幀插入普通幀。

Actions圖層的第50幀的代碼如下:

next50_btn.addEventListener(MouseEvent.CLICK,totalfen50);

function totalfen50(event:MouseEvent):void

{if (c_50.selected == true)//若正確答案C項選中

{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è)計成由學(xué)生自主選擇是否重新測試,那么按鈕的第51幀插入關(guān)鍵幀,把按鈕實例改為redo_btn,Actions圖層的第51幀代碼只需編寫成點擊該按鈕跳轉(zhuǎn)回到第一幀即可。除此外還可以在改圖層的第51幀增加其他按鈕,比如退出按鈕,返回課件首頁等等諸如之類的按鈕。

2 利用CheckBox組件實現(xiàn)多項選擇題的設(shè)計

1) 在舞臺上建立靜態(tài)文本,把題目及答案制作成靜態(tài)文本,排好版;

2) 點擊[窗口]-[組件]-[User Interface]-拖5個[CheckBox]到舞臺上;

3) 5個CheckBox實例名分別為A1,B1,C1,D1,E1等,改CheckBox組件參數(shù)的label屬性,為ABCDE等選項。

4) 在舞臺上建立動態(tài)文本,實例名名為answer2_txt;

5) 制作一個影片剪輯播放聲音,導(dǎo)入兩個音頻文件,一個音頻播放太棒了,一個播放加油;第1幀空白并在此幀寫上腳本stop,停在此幀,第5幀放第一個聲音“太棒了”,第8幀空白幀并寫上腳本stop,停在此幀,第10幀放第二個聲音“加油”。詳細制作方法參考利用RadioButton制作單項選擇題的步驟。

6) 制作一個提交按鈕,實例名為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 填空題的實現(xiàn)

3.1 選詞填空題設(shè)計與實現(xiàn)

選詞填空題利用鼠標拖放詞語實現(xiàn)選詞效果,鼠標拖動詞組在任何區(qū)域內(nèi)釋放,當點擊提交按鈕時反饋答題的分數(shù),也可以在答題處反饋紅色的√或紅色×,讓答題者知道自己的答題情況。

其基本程序設(shè)計代碼如下:

function 開始拖動函數(shù)名(event:MouseEvent):void

{詞組實例名.startDrag();}

function 停止拖動函數(shù)名(event:MouseEvent):void

{詞組實例名.stopDrag();}

判斷選詞是否正確,要制作一個透明的影片剪輯實例,賦予它相應(yīng)的實例名,置于答題空白處,判斷它是否與相應(yīng)正確詞語相碰,若相碰了就正確不相碰則不正確,使用的程序為選擇程序結(jié)構(gòu)if...else...

if(碰撞)

{//滿足碰撞執(zhí)行的語句}

else

{//不滿足碰撞執(zhí)行的語句}

3.2 填空題——填寫題的設(shè)計與實現(xiàn)

在Flash中利用輸入文本類型可以實現(xiàn)填寫練習(xí)題。

若要反饋出填空題是否答題正確,則賦予輸入文本框?qū)嵗袛嗥鋬?nèi)容是否是正確答案的內(nèi)容,其程序設(shè)計為選擇程序結(jié)構(gòu)if...else...

If(輸入文本框?qū)嵗?text==”正確答案”||輸入文本框?qū)嵗?text==”正確答案”)

{//滿足條件執(zhí)行的語句}/ /若只有一個正確答案可省略||及其后面的內(nèi)容endprint

else

{//不滿足條件執(zhí)行的語句}

實現(xiàn)的方法步驟:

1) 建立一個圖層放置題目(使用靜態(tài)文本)。

2) 在題目上方建立一個放置輸入文本框圖層。放置四個輸入文本框,實例名稱分別為:sr1_txt,sr2_txt,sr3_txt,sr4_txt。另外再放置2個動態(tài)文本框,實例名稱分別是answer1_txt,answer2_txt。

3) 新建一個影片剪輯的元件,內(nèi)部含有兩幀,第1幀放置√,第2幀放置×。在第1幀stop();

4) 建立一個圖層放置4個含有√和×的影片剪輯。實例名稱分別是gc1_mc,gc2_mc,gc3_mc,gc4_mc。

5) 建立一個按鈕圖層,放置三個按鈕如下圖所示,按鈕名稱分別是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è)計與實現(xiàn)

連一連練習(xí)題一般有兩組內(nèi)容,把兩組的內(nèi)容分別制作成相應(yīng)的影片剪輯,并賦予實例名。左邊實例名分別是a1,a2,a3,a4,右邊正確對應(yīng)左邊的影片剪輯的實例名分別是b1,b2,b3,b4;顯示是否連線正確的影片剪輯動畫的實例名分別為da1,da2,da3,da4。

其代碼如下:

import flash.display.Shape;

var drawing:Boolean = false;

da1.alpha = 0;// da1紅色√或紅色×的影片剪輯的實例名,此處設(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; //畫筆粗細

var start_x:Number; //畫筆起點x值endprint

var start_y:Number; //畫筆起點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í)題模式是信息時代很流行的學(xué)習(xí)方式,也必將成為新世紀學(xué)校教育教學(xué)主要的考核方法。 它不僅給予學(xué)生及時有效的課程幫助輔導(dǎo),而且加強了老師對學(xué)生的管理,節(jié)省了教師大量時間,勢在必行。

基于Flash的多媒課件制作內(nèi)容豐富、交互性強,多媒體課件的開發(fā)和運用,激發(fā)了學(xué)生學(xué)習(xí)的積極性,提高了學(xué)習(xí)的效率,培養(yǎng)了學(xué)生的創(chuàng)新精神和實踐能力,體現(xiàn)了計算機輔助教學(xué)的優(yōu)越性。endprint

猜你喜歡
實現(xiàn)習(xí)題設(shè)計
從一道課本習(xí)題說開去
抓住習(xí)題深探索
精心設(shè)計習(xí)題 構(gòu)建高效課堂
瞞天過海——仿生設(shè)計萌到家
設(shè)計秀
有種設(shè)計叫而專
辦公室人員尚需制定個人發(fā)展規(guī)劃
淺析鐵路通信傳輸?shù)臉?gòu)成及實現(xiàn)方法
設(shè)計之味
文山县| 吐鲁番市| 磐石市| 鹤壁市| 克山县| 什邡市| 莒南县| 新河县| 瑞金市| 凤山县| 商洛市| 怀来县| 磐安县| 浠水县| 天全县| 湄潭县| 甘泉县| 大悟县| 上虞市| 河曲县| 南宫市| 庄浪县| 岳阳县| 汝阳县| 昆山市| 宜兴市| 孟村| 龙山县| 吕梁市| 宕昌县| 合肥市| 乐东| 湖北省| 武安市| 江都市| 大埔县| 太原市| 沽源县| 太谷县| 板桥市| 安顺市|