摘 要 在中職教育中,充分利用學(xué)生愛(ài)玩游戲的特性,用簡(jiǎn)單的腳本代碼實(shí)現(xiàn)實(shí)例游戲,能有效達(dá)到教學(xué)要求。本文通過(guò)“彈小球”的設(shè)計(jì)實(shí)例,介紹如何利用Actionscript編程實(shí)現(xiàn)游戲特效。
【關(guān)鍵詞】Flash Actionscript Flash實(shí)例
針對(duì)中職教學(xué)中Flash編程課程,利用Actionscript編程實(shí)現(xiàn)一些互動(dòng)小游戲,引發(fā)學(xué)生的好奇心,將枯燥的腳本語(yǔ)言和鮮活的互動(dòng)游戲糅為一體,提高學(xué)生的理解能力和動(dòng)手能力。
1 Actionscript編程語(yǔ)言特性
Actionscript腳本語(yǔ)言是Flash內(nèi)置編程語(yǔ)言,可以實(shí)現(xiàn)一些特殊的動(dòng)畫(huà)效果。該語(yǔ)言可以幫助用戶(hù)按照各自想法實(shí)現(xiàn)不同的繁雜場(chǎng)景,呈現(xiàn)出多種靚麗的特效。Actionscript需要在Flash的動(dòng)作面板中完成,動(dòng)作面板有兩種模式:標(biāo)準(zhǔn)模式和專(zhuān)家模式。點(diǎn)擊進(jìn)入動(dòng)作面板后,左側(cè)的上方是一個(gè)“動(dòng)作”工具箱,單擊前面的圖標(biāo)展開(kāi)每一個(gè)條目,可以顯示出對(duì)應(yīng)條目下的動(dòng)作腳本語(yǔ)句元素,雙擊選中的語(yǔ)句即可將其添加到編輯窗口。下方是一個(gè)“腳本”導(dǎo)航器。里面列出了FLA文件中具有關(guān)聯(lián)動(dòng)作腳本的幀位置和對(duì)象;單擊腳本導(dǎo)航器中的某一項(xiàng)目,與該項(xiàng)目相關(guān)聯(lián)的腳本則會(huì)出現(xiàn)在“腳本”窗口中,并且場(chǎng)景上的播放頭也將移到時(shí)間軸上的對(duì)應(yīng)位置上。雙擊腳本導(dǎo)航器中的某一項(xiàng),則該腳本會(huì)被固定。右側(cè)部分是“腳本”編輯窗口,這是添加代碼的區(qū)域??梢灾苯釉凇澳_本”窗口中編輯動(dòng)作、輸入動(dòng)作參數(shù)或刪除動(dòng)作。
本文通過(guò)簡(jiǎn)單實(shí)例—“彈小球”,講解Actionscript中一些動(dòng)作腳本的用法。
2 “彈小球”實(shí)例的設(shè)計(jì)與實(shí)現(xiàn)
2.1 常用的“彈小球”制作實(shí)例的Actionscript腳本語(yǔ)句
2.1.1 Flash.display.Shape
這是包flash.display下類(lèi)public class Shape,通過(guò) ActionScript 繪圖應(yīng)用程序編程接口 (API),可使用Shape類(lèi)創(chuàng)建簡(jiǎn)單形狀。 Shape 類(lèi)包括 graphics 屬性,該屬性可以從Graphics類(lèi)訪問(wèn)方法。Shape類(lèi)繼承順序?yàn)镈isplayObject、EventDispatch、Object。Sprite類(lèi)包括 graphics 屬性,并且它包括不可用于 Shape 類(lèi)的其它功能。 Sprite對(duì)象支持鼠標(biāo)單擊事件,而Shape對(duì)象不支持。用import在Actionscript腳本語(yǔ)言中導(dǎo)入包flash.display。
2.1.2 events.Event
這是包flash.events下類(lèi)public class Event,Event繼承自O(shè)bject,Event類(lèi)作為創(chuàng)建Event對(duì)象的基類(lèi),當(dāng)發(fā)生事件時(shí),Event對(duì)象將作為參數(shù)傳遞給事件偵聽(tīng)器。對(duì)于許多事件(如由Event 類(lèi)常量表示的事件),此基本信息就足夠了。但其它事件需要更詳細(xì)的信息。Event類(lèi)的方法可以在事件偵聽(tīng)器函數(shù)中使用,能過(guò)影響事件對(duì)象的行為。對(duì)于某些關(guān)聯(lián)事件可以做默認(rèn)行為。用import在Actionscript腳本語(yǔ)言中導(dǎo)入包flash.events。
2.1.3 utils.Timer
這是包flash.utils下類(lèi)public class Timer,timer繼承順序?yàn)镋ventDispatcher和Objiect,Timer 類(lèi)是Flash Player計(jì)時(shí)器的接口??梢詣?chuàng)建新的Timer對(duì)象,可以按照指定時(shí)間順序運(yùn)行代碼。使用 start() 的方法啟動(dòng)計(jì)時(shí)器,添加事件偵聽(tīng)器,設(shè)置代碼按照計(jì)時(shí)器間隔運(yùn)行。對(duì)于創(chuàng)建的Timer對(duì)象取決于swf文件的幀頻或 Flash Player的環(huán)境,能基本進(jìn)行間隔調(diào)度。用import在Actionscript腳本語(yǔ)言中導(dǎo)入包utils.Timer。
2.1.4 events.TimerEvent
同(2)是屬于一個(gè)類(lèi),但是在events下的創(chuàng)建一個(gè)TimeEvent對(duì)象,這是時(shí)間事件偵聽(tīng)器,用import在Actionscript腳本語(yǔ)言中導(dǎo)入包flash.events。
2.1.5 text.TextField
這是包flash.text下類(lèi)public class TextField,TeXField繼承順序?yàn)镮nteractiveObject、DisplayObject、EventDispatcher和Object,TextField 類(lèi)用于創(chuàng)建顯示對(duì)象以顯示和輸入文本。若要?jiǎng)討B(tài)創(chuàng)建文本字段,用TextField()構(gòu)造函數(shù),允許設(shè)置、選擇和操作在創(chuàng)作過(guò)程中或運(yùn)行時(shí)創(chuàng)建的動(dòng)態(tài)或輸入文本字段中的文本。用import在Actionscript腳本語(yǔ)言中導(dǎo)入包flash.text。
2.1.6 addEventListene
這是一個(gè)偵聽(tīng)事件并對(duì)應(yīng)處理的函數(shù),當(dāng)偵聽(tīng)到對(duì)應(yīng)事件后直接處理,它只接受Event對(duì)象為自己的唯一參數(shù),并且不能返回任何結(jié)果。偵聽(tīng)器在偵聽(tīng)時(shí)分為三個(gè)階段:捕獲階段、目標(biāo)階段和冒泡階段。偵聽(tīng)順序?yàn)椴东@階段→目標(biāo)階段→冒泡階段。捕獲階段用于監(jiān)聽(tīng)是否調(diào)用了監(jiān)聽(tīng)函數(shù),目標(biāo)階段確定目標(biāo)本身,冒泡階段表面監(jiān)聽(tīng)目標(biāo)回到原點(diǎn)。自帶的addEventListener方法默認(rèn)只有參數(shù)event事件類(lèi)型。
2.2 “彈小球”實(shí)例的設(shè)計(jì)思路
明確“彈小球”互動(dòng)小游戲的全部元件和交互對(duì)象,這個(gè)游戲中首先我們要設(shè)定好整個(gè)游戲的框架大小,其中有一個(gè)元件小球,并設(shè)定好大小和顏色,要有一個(gè)元件球板,并設(shè)定好大小和顏色。之后我們開(kāi)始設(shè)計(jì)互動(dòng),小球能夠上下左右進(jìn)行彈射,其中上左右是通過(guò)我們規(guī)定好的游戲框架的框壁,下是一個(gè)可以移動(dòng)的球板,一開(kāi)始小球移動(dòng)速度很慢,每次彈射后加速一下,當(dāng)加速至我們規(guī)定的最高速度后就保持不變。當(dāng)我們的球板沒(méi)有接住小球,讓小球從游戲框中掉落,顯示游戲結(jié)束,再重新開(kāi)始,如此循環(huán)。
教學(xué)有法,而教無(wú)定法,教學(xué)中不能一味地死板硬套,只要涉及游戲就聞而變色。通過(guò)互動(dòng)小游戲的設(shè)計(jì),掌握Actionscript腳本編程的學(xué)習(xí),捕捉學(xué)生的心理狀態(tài),發(fā)現(xiàn)教學(xué)契機(jī),構(gòu)建良好的教學(xué)方法,達(dá)到理想的教學(xué)效果。
參考文獻(xiàn)
[1]陳民,吳婷.動(dòng)畫(huà)設(shè)計(jì)與制作[M].南京:江蘇教育出版社,2010,03.
[2]甘登岱.Flash8.0版精彩動(dòng)漫設(shè)計(jì)[M].北京:航空工業(yè)出版社,2007.
作者簡(jiǎn)介
梁卓韜(1980-),男,安徽省合肥市人。碩士學(xué)位。現(xiàn)為安徽省汽車(chē)工業(yè)學(xué)校講師,主要研究方向?yàn)橛?jì)算機(jī)應(yīng)用技術(shù)。
作者單位
安徽省汽車(chē)工業(yè)學(xué)校 安徽省合肥市 231131