摘 要: Applet程序是采用Java創(chuàng)建的基于HTML的程序,具有多媒體支持功能,但對初學(xué)者來說有一定的難度。本文從采用多媒體和實例化教學(xué),加強(qiáng)對原理的理解和培養(yǎng)學(xué)生興趣及動手能力等方面介紹本節(jié)內(nèi)容的學(xué)習(xí),以供參考。
關(guān)鍵詞: Java Applet 多媒體功能 教學(xué)方法
1.引言
Java語言是由SUN公司推出的全新的純面向?qū)ο蟮某绦蛟O(shè)計語言,它是一種與平臺無關(guān)的、安全的、解釋型的語言,為Web提供了簡單而功能強(qiáng)大的API接口和動態(tài)內(nèi)容的交互技術(shù)。根據(jù)結(jié)構(gòu)組成和運行環(huán)境的不同,Java程序可以分成Java Application程序和Java Applet程序。在Java Applet中,可以實現(xiàn)圖形繪制、字體和顏色控制、動畫和聲音的播放等多媒體效果,美化了HTML頁面,增強(qiáng)了瀏覽者的視覺效果。但是這些功能的實現(xiàn)有著較復(fù)雜的技術(shù)背景,對初學(xué)者來說,存在著一定的難度,如何激發(fā)學(xué)生的學(xué)習(xí)興趣,讓學(xué)生迎難而上,并且能夠快速地掌握這些內(nèi)容,成為了教師關(guān)注的焦點。我結(jié)合自己的教學(xué)實踐,提出了以下幾點看法,以供參考。
2.課堂教學(xué)
2.1展示教學(xué)案例,激發(fā)學(xué)生學(xué)習(xí)興趣。
任何時候,一個新的內(nèi)容都會引起學(xué)生強(qiáng)烈的好奇心和求知欲,在學(xué)習(xí)之前,學(xué)生往往表現(xiàn)得情緒高漲。教師就要牢牢抓住這個關(guān)鍵時刻,充分調(diào)動學(xué)生的積極性,最大限度地激發(fā)學(xué)生的學(xué)習(xí)興趣。興趣是最好的老師,能夠激發(fā)學(xué)生學(xué)習(xí)的潛能,特別是在面對這種有些難度的教學(xué)內(nèi)容時,我們更應(yīng)該能夠敢于拋開一般的程序設(shè)計的常規(guī)教學(xué)模式,先給學(xué)生展示一個完整的、能引起共識的、很貼近大家生活的教學(xué)案例,通過展示,讓大家提前體會到這將是有趣又富有挑戰(zhàn)性的一堂課。在教學(xué)中,我給大家展示了簡易的MTV動畫,美麗的圖片伴隨著輕柔的音樂一張張地展示在學(xué)生面前。學(xué)生對案例內(nèi)容特別熟悉,但是對于通過Applet程序來實現(xiàn)又很陌生。這就激發(fā)了學(xué)生的學(xué)習(xí)興趣,眼睛里充滿了期待,為后面的教學(xué)的順利實施奠定了基礎(chǔ)。
2.2循序漸進(jìn),講解動畫工作原理。
接下來的教學(xué)是借助多媒體課件為學(xué)生講解動畫工作原理,而不是手把手地交給學(xué)生制作步驟,只有掌握了工作原理,對后面學(xué)生自己動手實踐和代碼編寫才能提供依據(jù)和理論指導(dǎo)。Java中實現(xiàn)動畫的基本原理和諸如Flash等的動畫技術(shù)沒有本質(zhì)的不同,都是通過播放一系列的幀,利用人眼的視覺暫停來造成了運動的感覺,動畫中動作的平滑度越好,動畫的質(zhì)量就越好。概括地講,每秒鐘播放的幀數(shù)越多,其平滑度就越好,形成的動畫也就越逼真,Applet中實現(xiàn)的動畫效果就跟動畫的播放速度有關(guān)系。
2.3解析課前展示的實例,講解動畫制作方法。
在了解了動畫工作原理后,自然而然地就過渡到了制作方法的講解上,課前實例可以分成兩個部分,一個是圖片動畫的制作,一個是音樂文件的播放制作。
2.3.1圖片動畫的制作實例。
第一步,將要展示的圖片建立好圖片序列,本例中準(zhǔn)備了24張風(fēng)景圖片,圖片文件名規(guī)律的命名為:pic0.jpg、pic1.jpg、pic2.jpg......pic23.jpg,并將它們?nèi)糠胖迷贏pplet應(yīng)用程序目錄下的images文件夾中,為了處理的方便,使用數(shù)組來存放這些Image對象。在Applet程序的初始化中,添加如下代碼:
Image pic=new Image[24];
public void init()
{
int i;
for(i=0;i<pic.length;i++)
pic[i]=getImage(getDocumentBase(),“images/pic”+i+“.jpg”);
}
第二步,講解如何在程序中顯示這些圖片。在Applet程序顯示圖片的方法很多,我們可以使用Graphics類的drawImage()方法實現(xiàn),代碼引用如下:
public void paint(Graphics g)
{
g.drawImage(pic[j],0,0,this);//顯示圖片
j++;
if(j>23)
j=0;//通過變量j控制圖片的循環(huán)顯示
}
第三步,在需要顯示的內(nèi)容和顯示方法確定好了之后,接下來的講解就是圖片播放速度的控制問題了,這可以通過Java的多線程功能來實現(xiàn),專門建立一個線程來負(fù)責(zé)整個的放映過程,而主線程負(fù)責(zé)所有的繪圖和事件處理。線程控制播放速度功能代碼如下:
Thread animator;
int delaytime=100;//設(shè)置線程睡眠時間,本例中指兩張圖片顯示的時間間隔
public void start()
{
animator=new Thread(this);//創(chuàng)建線程
animator.start();//啟動線程
}
public void run()
{while(animator!=null)
{repaint();
try
{Thread.sleep(delaytime);//線程睡眠
}
catch(Exception e)
{break;
}
}
}
public void stop()
{animator.stop();//停止線程
animator=null;
}
第四步,將上面講解的這些代碼組合在一起,便實現(xiàn)了圖片動畫的播放。這樣一個講解過程,讓學(xué)生理清了Applet動畫的程序設(shè)計步驟,并且化繁為簡,各個突破,分步驟實現(xiàn),也降低了這些內(nèi)容的難度,符合學(xué)生的認(rèn)知要求。
2.3.2音樂文件的播放制作實例。
音樂文件的播放是通過Java的Applet包中的AudioClip對象實現(xiàn)的,Java Applet默認(rèn)支持的聲音文件格式是AU、AIFF、WAV、MIDI,我們通過Applet類的getAudioClip(URL)方法獲得AudioClip對象。
第一步,通過初始化方法獲得要播放的聲音文件,根據(jù)上面的分析,可寫出下面的代碼:
public void init()
{try
{audioClip=this.getAudioClip(getCodeBase(),“sound.wav”);
}
catch(Exception e){}
}
第二步,設(shè)置“播放”、“循環(huán)播放”、“停止”按鈕,并將其加入到Applet面板中。
第三步,編寫按鈕的actionPerformed(ActionEvent actionEvent)方法,代碼如下:
public void actionPerformed(ActionEvent actionEvent)
{
String btn=actionEvent.getActionCommand();
if(btn.equals(“play”))
{audioClip.play();}//播放音樂
if(btn.equals(“l(fā)oop”))
{audioClip.loop();}//播放音樂
if(btn.equals(“stop”))
{audioClip.stop();}//播放音樂
}
第四步,將以上的分析代碼組合,就可以得到音樂播放文件的程序。
2.3.3積極發(fā)揮學(xué)生主動作用,增加學(xué)生實踐能力。
經(jīng)過了以上步驟,就完成了多媒體動畫與聲音文件的播放功能的實現(xiàn),接下來的工作就是要發(fā)揮學(xué)生的主觀能動性,讓學(xué)生自己動手,完成全部代碼的編寫,并將兩個程序合二為一,實現(xiàn)課前展示的多媒體動畫效果。
3.結(jié)語
在教學(xué)過程中,以“程序設(shè)計”為主線,以培養(yǎng)學(xué)生的程序設(shè)計的思想和學(xué)生的動手實踐能力為目標(biāo),充分利用各種教學(xué)資源,并靈活地運用各種教學(xué)方法進(jìn)行課堂教學(xué),激發(fā)學(xué)生的學(xué)習(xí)興趣,提高學(xué)生學(xué)習(xí)的積極性和主動性,將難度較大的學(xué)習(xí)內(nèi)容進(jìn)行分割,化繁為簡,緩減學(xué)生的學(xué)習(xí)壓力。實踐證明,這些教學(xué)思想和教學(xué)方法在實際教學(xué)中頗有成效。
參考文獻(xiàn):
?。?]王衛(wèi)生主編.Java程序設(shè)計與實訓(xùn)教程.北京理工大學(xué)出版社,2007.
?。?][美]Eric Armstrong.Jbuilder 2使用大全[M].奇舒創(chuàng)作室譯,1999.
?。?]李明才主編.Java語言程序設(shè)計案例教程.中國水利水電出版社,2010.