林旭晞
摘 要:Flash作為一種獨(dú)立的藝術(shù)形式,被大量應(yīng)用于網(wǎng)絡(luò)矢量動(dòng)畫、游戲、廣告和UI設(shè)計(jì),近年來(lái)在新移動(dòng)媒體中得到了更為廣泛的應(yīng)用和推廣。在Flash課程教學(xué)中,使用Action Script進(jìn)行編程對(duì)于中職學(xué)生是個(gè)不小的難題。選擇漸進(jìn)式的交互動(dòng)畫案例,讓編程與動(dòng)畫效果相結(jié)合,直觀生動(dòng)地呈現(xiàn)程序的交互效果,能夠有效激發(fā)學(xué)生學(xué)習(xí)積極性,提高教學(xué)成效。
關(guān)鍵詞:Flash;AS程序;交互動(dòng)畫
中圖分類號(hào):G64 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1673-9132(2017)18-0007-02
DOI:10.16657/j.cnki.issn1673-9132.2017.18.002
對(duì)于大部分中職學(xué)生來(lái)說,教學(xué)內(nèi)容的趣味性很大程度上決定了學(xué)習(xí)的效果,尤其編程類的課程很考驗(yàn)教師對(duì)教學(xué)內(nèi)容的把握。學(xué)生對(duì)于編程的學(xué)習(xí)效果不理想,不僅由于編程的難度高,更主要的是由于編程的枯燥。
“交互”在計(jì)算機(jī)中意思是參與活動(dòng)的對(duì)象可以雙方面相互交流,教學(xué)中強(qiáng)調(diào)教師與學(xué)生的之間的互動(dòng),卻常常忽略了學(xué)生與直接面對(duì)的實(shí)例之間的互動(dòng)。計(jì)算機(jī)教學(xué)中所使用的實(shí)例需要學(xué)生的實(shí)際操作,實(shí)例效果好壞和成敗的反饋不是教師給予的,而是學(xué)生在操作過程中直接獲得的,因此,F(xiàn)lash程序?qū)嵱?xùn)教學(xué)的實(shí)例選擇應(yīng)符合中職生的特點(diǎn),在編程的基礎(chǔ)上綜合考慮實(shí)例的難易漸進(jìn)、參數(shù)修改和測(cè)試的對(duì)比直觀性、動(dòng)畫美觀性等方面。
Flash具有交互性強(qiáng)、創(chuàng)作簡(jiǎn)單的特點(diǎn) [1],以其獨(dú)特的形式能夠?qū)?dòng)畫和程序相互結(jié)合,網(wǎng)絡(luò)上有很多可以進(jìn)行交互的案例,如網(wǎng)頁(yè)導(dǎo)航菜單、廣告片頭、電子賀卡、網(wǎng)頁(yè)小游戲等等,有趣且互動(dòng)性強(qiáng),是理想的Flash程序?qū)嵱?xùn)教學(xué)案例。在教學(xué)過程中以學(xué)生為主體,做到學(xué)做合一,針對(duì)學(xué)生的認(rèn)知特點(diǎn)和現(xiàn)有知識(shí)體系,選擇循序漸進(jìn)的交互動(dòng)畫案例,設(shè)計(jì)教學(xué)流程,由淺入深地引導(dǎo)學(xué)生掌握Action Script(簡(jiǎn)稱AS)的使用,結(jié)合美工設(shè)計(jì)和游戲設(shè)計(jì),用動(dòng)畫和游戲的魅力吸引學(xué)生參與到程序的編寫,從實(shí)現(xiàn)簡(jiǎn)單的交互動(dòng)畫,到完成小游戲項(xiàng)目的制作。
一、建立互動(dòng),激發(fā)興趣
在學(xué)習(xí)AS程序初始階段,選擇語(yǔ)句簡(jiǎn)單且直觀性強(qiáng)的交互動(dòng)畫實(shí)例,學(xué)生可以直接測(cè)試得到以動(dòng)畫方式呈現(xiàn)的結(jié)果,獲得及時(shí)的反饋,學(xué)習(xí)效果明顯。使用AS編程與使用VB、VC等高級(jí)程序設(shè)計(jì)語(yǔ)言相比有不小的差別,它的語(yǔ)句格式要求較低,利用AS中自帶的腳本助手來(lái)簡(jiǎn)化編程、降低難度,減少學(xué)生犯錯(cuò)的可能,提高作品的成功率,降低學(xué)生對(duì)編程的恐懼和排斥心理。下面通過兩個(gè)實(shí)例進(jìn)行說明。
(一)小魚游:控制魚的游動(dòng)和停止
此例中用到函數(shù)有on函數(shù)、play函數(shù)、stop函數(shù)。on表示當(dāng)發(fā)生特定鼠標(biāo)事件時(shí)執(zhí)行動(dòng)過,play表示開始播放影片,stop表示停止播放影片。
“開始”按鈕的語(yǔ)句:
on (release) //當(dāng)鼠標(biāo)點(diǎn)擊并釋放后,執(zhí)行{}內(nèi)的語(yǔ)句
{ play ( ); }
“停止”按鈕的語(yǔ)句:
on (release) //當(dāng)鼠標(biāo)點(diǎn)擊并釋放后,執(zhí)行{}內(nèi)的語(yǔ)句
{ stop ( ); }
運(yùn)行結(jié)果:當(dāng)點(diǎn)擊停止按鈕,魚停止游動(dòng);當(dāng)點(diǎn)擊開始按鈕,魚繼續(xù)游動(dòng)。
案例分析:這個(gè)例子結(jié)合了按鈕和程序的運(yùn)用,語(yǔ)句的編寫過程直接通過腳本助手來(lái)完成,點(diǎn)擊鼠標(biāo)即可實(shí)現(xiàn)幾個(gè)函數(shù)的調(diào)用,簡(jiǎn)化程序的編寫過程。通過點(diǎn)擊按鈕實(shí)現(xiàn)學(xué)生與實(shí)例之間的交互,讓學(xué)生能夠很直觀地感受到程序的控制作用。
(二) 自制鼠標(biāo):設(shè)計(jì)繪制鼠標(biāo)指針
選中幀打開動(dòng)作面板,輸入程序:
Mouse.hide( ); //隱藏鼠標(biāo)
startDrag(s,true); //在MC上開始拖放動(dòng)作,動(dòng)作對(duì)象為s,true表示鎖定鼠標(biāo)到元件中央
運(yùn)行結(jié)果:在測(cè)試窗口內(nèi),原本箭頭狀鼠標(biāo)指針被隱藏,取而代之的是學(xué)生自己繪制的指針樣式。
案例分析:此例在學(xué)習(xí)語(yǔ)句的基礎(chǔ)上,啟發(fā)學(xué)生回憶以往在游戲中見過的各種鼠標(biāo)指針樣式,鼓勵(lì)自行繪制設(shè)計(jì)鼠標(biāo)指針,設(shè)計(jì)樣式風(fēng)格需與使用環(huán)境相適合,如刀劍、飛鏢、魔法棒、手勢(shì)、樂器等等指向性比較明確的對(duì)象都是不錯(cuò)的設(shè)計(jì)參考樣式。使用類似例子,不僅可以讓學(xué)生進(jìn)一步建立起對(duì)編程的認(rèn)識(shí),更可以激發(fā)學(xué)生的創(chuàng)造設(shè)計(jì)能力。
二、加深學(xué)習(xí),鞏固戰(zhàn)果
程序結(jié)構(gòu)包括三種基本結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu)是按書寫順序執(zhí)行的結(jié)構(gòu),是最簡(jiǎn)單最常見的結(jié)構(gòu),之前編寫的程序?qū)嵗紝儆陧樞蚪Y(jié)構(gòu)。分支結(jié)構(gòu)也稱為選擇結(jié)構(gòu),根據(jù)給定的條件進(jìn)行判斷,決定執(zhí)行某個(gè)分支程序。循環(huán)結(jié)構(gòu)是根據(jù)給定條件進(jìn)行判斷,當(dāng)條件成立時(shí),反復(fù)執(zhí)行某個(gè)程序段,通常稱給定條件為循環(huán)條件。這個(gè)階段中,要著重于選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的講解和練習(xí),采用結(jié)構(gòu)化程序設(shè)計(jì)方法,可以使程序的邏輯結(jié)構(gòu)清晰、層次分明、可讀性好、可靠性強(qiáng),從而提高程序的開發(fā)效率,保證程序質(zhì)量改善程序的可靠性[3]。
(一)單個(gè)影片剪輯屬性改變案例
更改影片剪輯(簡(jiǎn)稱MC)元件實(shí)例的可視屬性,如坐標(biāo)、高度、寬度、大小比例、不透明度等等,引入MC元件實(shí)例的命名,并且逐一增加使用屬性語(yǔ)句如MC._x、MC._y、MC._height、MC._width、MC._xscale、MC._yscale、MC. _alpha等,并修改參數(shù),實(shí)時(shí)測(cè)試并觀看結(jié)果變化。上文“自制鼠標(biāo)”實(shí)例中還可以用以下語(yǔ)句來(lái)實(shí)現(xiàn):“MC._x = _xmouse; MC._y = _ymouse;”。
(二)影片剪輯控制加強(qiáng)版案例
實(shí)現(xiàn)單個(gè)MC元件實(shí)例的變化后,引入循環(huán)語(yǔ)句和影片剪輯控制語(yǔ)句。例如,繪制一顆星星MC元件,實(shí)例命名為a,利用循環(huán)語(yǔ)句復(fù)制MC元件實(shí)例,隨機(jī)設(shè)置MC元件實(shí)例屬性,制作出滿天星星閃爍的效果。
for (i = 1; i <=20; i++) {
duplicateMovieClip(this.a,"aa"+i,i);
this["aa" + i]._x = random(700); //隨機(jī)設(shè)置X軸坐標(biāo)
this["aa" + i]._y = random(300); //隨機(jī)設(shè)置Y軸坐標(biāo)
this["aa" + i]._alpha=random(80); //隨機(jī)設(shè)置透明度
this["aa" + i]._rotation=random(360); //隨機(jī)設(shè)置旋轉(zhuǎn)角度}
案例分析:通過更改循環(huán)次數(shù)設(shè)定星星的個(gè)數(shù),修改屬性參數(shù)值可以獲得不同的星星,測(cè)試效果實(shí)時(shí)反饋,直觀明了。與本例類似的實(shí)例有如霓虹燈、滾動(dòng)條幅、下雨、下雪等等,學(xué)生可以舉一反三,課后自行練習(xí)。
結(jié)合本階段的程序?qū)W習(xí)內(nèi)容,要求學(xué)生利用網(wǎng)絡(luò)搜索其他可改變的元件實(shí)例屬性,如顏色等。網(wǎng)絡(luò)資源龐大,善于使用網(wǎng)絡(luò)資源也是一個(gè)信息化社會(huì)的必備學(xué)習(xí)技能,鍛煉自學(xué)能力,拓展知識(shí)面,跳出課堂的局限。隨著學(xué)習(xí)的不斷深入,在后續(xù)的教學(xué)中逐漸引進(jìn)新的函數(shù),擴(kuò)展現(xiàn)有的知識(shí)結(jié)構(gòu),制作出實(shí)用的小作品,如時(shí)鐘、網(wǎng)頁(yè)導(dǎo)航菜單、滾動(dòng)圖片等。
三、項(xiàng)目制作,拓展訓(xùn)練
在進(jìn)行以上程序+動(dòng)畫實(shí)例的強(qiáng)化練習(xí)后,下一階段將選擇使用較復(fù)雜的Flash小游戲進(jìn)行綜合項(xiàng)目練習(xí),例如拼圖游戲、猜拳游戲、找碴游戲等等經(jīng)典Flash小游戲。游戲是最典型的交互案例,有趣好玩,有適度的挑戰(zhàn)性,結(jié)果反饋及時(shí),并且能夠吸引主體積極主動(dòng)地參與活動(dòng)。游戲案例是Flash程序教學(xué)中重要的大綜合項(xiàng)目,以游戲案例為載體,實(shí)施項(xiàng)目驅(qū)動(dòng)教學(xué),將能力的培養(yǎng)和知識(shí)的傳授相結(jié)合[4]。
(一)試玩游戲案例,進(jìn)行游戲規(guī)則分析
玩游戲必先了解游戲規(guī)則,以“猜拳游戲”為例,玩家與電腦比大小,有布、拳頭和剪子3個(gè)選項(xiàng),三者之間的大小關(guān)系為布>拳頭>剪子>布,按照玩家和電腦的出拳結(jié)果評(píng)判勝負(fù)。
(二)分解游戲流程,重視邏輯思維構(gòu)建
游戲項(xiàng)目的制作需要有清晰的思路。教師作為引領(lǐng)者,協(xié)助學(xué)生分解游戲進(jìn)程,明確游戲各階段需要做些什么,繪制游戲流程圖,讓學(xué)生逐步把分解的各部分再拼成一個(gè)完整的游戲結(jié)構(gòu)。教師應(yīng)起到啟發(fā)引領(lǐng)的作用,應(yīng)盡量避免直接公布答案或得出結(jié)論。
(三)設(shè)計(jì)制作游戲,強(qiáng)調(diào)創(chuàng)新意識(shí)培養(yǎng)
游戲制作大體可以分為程序和美工兩大塊,程序決定了游戲的玩法,美工設(shè)計(jì)決定了游戲的印象分和趣味性。在制作過程中,應(yīng)多鼓勵(lì)學(xué)生自行設(shè)計(jì)游戲風(fēng)格和動(dòng)畫表現(xiàn)方式,創(chuàng)作出具有個(gè)人風(fēng)格的作品。
“猜拳游戲”有三個(gè)階段:游戲初始界面、主體界面和出現(xiàn)對(duì)應(yīng)動(dòng)畫。為了適當(dāng)降低整體實(shí)現(xiàn)難度,提高完成度,進(jìn)行游戲項(xiàng)目制作時(shí),根據(jù)游戲流程將制作步驟分解成對(duì)應(yīng)的三個(gè)階段。每個(gè)階段完成后先行進(jìn)行測(cè)試,檢測(cè)程序?qū)﹀e(cuò)與否,調(diào)整動(dòng)畫效果。測(cè)試完畢后,再進(jìn)行下一階段的制作。分階段制作測(cè)試可以在保證最終游戲成功率的同時(shí),可以讓學(xué)生能夠逐漸加深對(duì)整個(gè)制作流程的理解,促使學(xué)生進(jìn)一步地對(duì)游戲進(jìn)行改進(jìn)開發(fā)。
(四)項(xiàng)目分組,進(jìn)行團(tuán)隊(duì)合作
對(duì)于綜合性強(qiáng)的項(xiàng)目,教師組織學(xué)生分組進(jìn)行游戲設(shè)計(jì)和制作,項(xiàng)目進(jìn)行分解獲得相關(guān)知識(shí)和技能模塊,引導(dǎo)學(xué)生在完成項(xiàng)目的過程中模擬進(jìn)入崗位角色,從游戲的構(gòu)思,到美工的設(shè)計(jì),再到程序的編寫,進(jìn)行游戲測(cè)試,讓學(xué)生體驗(yàn)一個(gè)完整的制作流程,進(jìn)行團(tuán)體協(xié)作,強(qiáng)調(diào)合作精神,培養(yǎng)學(xué)生的實(shí)際操作能力和職業(yè)素質(zhì)。
四、結(jié)語(yǔ)
交流互動(dòng)即交互,通過精心設(shè)計(jì)安排交互動(dòng)畫案例教學(xué),由淺入深地引導(dǎo)學(xué)生掌握AS的使用。動(dòng)畫的加入讓程序的學(xué)習(xí)不再那么枯燥,程序測(cè)試結(jié)果可以直觀生動(dòng)地呈現(xiàn);游戲式的探索試驗(yàn)過程讓學(xué)生能夠主動(dòng)與作品進(jìn)行互動(dòng),AS編程的教學(xué)效果有了明顯提高。
參考文獻(xiàn):
[1] 葉仕灝.論電腦游戲在中職學(xué)校Flash程序設(shè)計(jì)教學(xué)中的應(yīng)用[J].黑龍江科技信息,2016(23).
[2] 王大遠(yuǎn). 一定要會(huì)的Flash CS5精彩案例208例[M].電子工業(yè)出版社,2011.