在我國(guó),課件的開(kāi)發(fā)速度遠(yuǎn)遠(yuǎn)跟不上教學(xué)的需求,原因在于課件開(kāi)發(fā)效率極低,主要表現(xiàn)為重復(fù)開(kāi)發(fā),沒(méi)有積累。積件的重復(fù)利用特性可以降低我國(guó)課件開(kāi)發(fā)總成本,是提高開(kāi)發(fā)效率的有效手段。
筆者認(rèn)為,如果能使得制作課件的時(shí)間縮小為半個(gè)小時(shí)至一小時(shí)(接近于PPT課件制作),積件化課件制作將會(huì)得到普及,并成為主流。
一、物理積件的特點(diǎn)
如果把物理課件的組成模塊看作一級(jí)積件的話(huà),圖表、信息、例題、資料、練習(xí)并非物理積件所獨(dú)有,應(yīng)屬于通用積件,因此,實(shí)際意義上的積件主要是指物理實(shí)驗(yàn)部分。
物理是典型的實(shí)驗(yàn)科學(xué),很多教師認(rèn)為模擬實(shí)驗(yàn)現(xiàn)象不如讓學(xué)生親自動(dòng)手做。這種觀點(diǎn)有一定道理,但不應(yīng)該就此抹煞實(shí)驗(yàn)?zāi)M類(lèi)積件,此類(lèi)積件具有安全、可重復(fù)操作、演示效率高和可對(duì)比觀察等優(yōu)點(diǎn)。因此實(shí)驗(yàn)?zāi)M積件與真實(shí)實(shí)驗(yàn)應(yīng)共同存在,兩者起到相輔相成的作用。
物理模擬現(xiàn)實(shí)比較復(fù)雜,要開(kāi)發(fā)一個(gè)好的物理積件庫(kù),必須要構(gòu)建不可視對(duì)象的積件。例如力是不可視對(duì)象,它只有作用于物體才能夠表現(xiàn)出來(lái)。
二、物理積件庫(kù)的三層構(gòu)想及開(kāi)發(fā)實(shí)踐
1.物理積件庫(kù)的三層構(gòu)想
按照筆者構(gòu)想,每一個(gè)積件庫(kù)可以分為三個(gè)層級(jí)。分別為素材層面的整合類(lèi)積件庫(kù);具有屬性方法對(duì)象層面的積件庫(kù);以偵聽(tīng)和注冊(cè)等手段來(lái)組織,以“自動(dòng)交互”為目的的積件庫(kù)。每一層級(jí)都以上一層級(jí)為基礎(chǔ)構(gòu)建,逐步增加開(kāi)發(fā)難度與功能。
第一層級(jí)很容易構(gòu)建,繪制或者征集整套的物理儀器圖庫(kù),如全套電學(xué)儀器圖庫(kù)、光學(xué)儀器圖庫(kù)、理學(xué)儀器圖庫(kù),其中包括簡(jiǎn)單的動(dòng)畫(huà)即可。
第二層級(jí)較為復(fù)雜,它為所有儀器元件增加電阻、電功率、額定電壓,為組件的運(yùn)轉(zhuǎn)制作動(dòng)畫(huà)(如電機(jī)轉(zhuǎn)動(dòng)動(dòng)畫(huà)、燈點(diǎn)亮動(dòng)畫(huà)等);為各種儀器元件增加類(lèi)似“通電(電壓)”方法,如燈泡的通電方法需要接受一個(gè)電壓參數(shù),燈泡會(huì)根據(jù)電壓決定亮度。這些屬性和方法不一定都用到,但是完成后,第三層級(jí)的積件就有了建立的基礎(chǔ)。
第三層級(jí)在第二層級(jí)的基礎(chǔ)上進(jìn)行開(kāi)發(fā),兩者的區(qū)別在于,如果使用第二層級(jí)的積件制作課件,需要由使用者進(jìn)行邏輯判斷(如電路是否需要連通),使用第三層級(jí)進(jìn)行制作,系統(tǒng)會(huì)自動(dòng)判斷電路是否連通。
2.物理積件庫(kù)的具體開(kāi)發(fā)
使用Flash軟件進(jìn)行課件的積件式開(kāi)發(fā)是當(dāng)前的積件式開(kāi)發(fā)的一個(gè)重要分支,它有望成為主流。
物理積件庫(kù)可以分為四個(gè)庫(kù),按照開(kāi)發(fā)規(guī)模大小依次為:力與運(yùn)動(dòng)、電學(xué)、光學(xué)、機(jī)械波。光學(xué)部分內(nèi)容少而且獨(dú)立,本文篇幅所限,所以在此僅討論電學(xué)、力與運(yùn)動(dòng)。
?。?)電學(xué)部分開(kāi)發(fā)
第一層級(jí)積件庫(kù)建設(shè):只要整理一套風(fēng)格統(tǒng)一的可視儀器庫(kù)便可形成(如下圖)。
第二層級(jí)積件庫(kù)建設(shè):要給各種儀器元件增加各種屬性(如電阻,額定電壓);此外,要根據(jù)不同儀器,增加不同“加壓”連通函數(shù)。連通函數(shù)可以傳遞“電壓”參數(shù),如小燈泡的連通是這樣的,燈泡.加壓(“電壓數(shù)”)。一個(gè)滑動(dòng)變阻器調(diào)節(jié)燈亮度的核心代碼為:
燈泡.omEnterFrame=function(){
if(開(kāi)關(guān).連通){
燈泡.加壓(燈泡.電阻*(電池.電壓/(電池.電阻+變壓器.電阻+燈泡.電阻)));
}
Else{
燈泡.斷開(kāi)();
}
}
此代碼的作用是根據(jù)各個(gè)儀器元件的屬性決定燈泡亮度。電路之間的邏輯關(guān)系是由編程來(lái)體現(xiàn),不是根據(jù)電路連接自動(dòng)作出判斷的。
第三層級(jí)積件庫(kù)建設(shè):它比第二層級(jí)的積件使用少了編程與邏輯過(guò)程,但這又對(duì)積件開(kāi)發(fā)提出了更高的編程要求。鑒于實(shí)現(xiàn)此模式有幾種不同的架構(gòu),筆者推薦以基于導(dǎo)線(xiàn)和觸點(diǎn)的電路連接為架構(gòu)。落實(shí)到技術(shù)上,即為每一個(gè)儀器元件增加觸點(diǎn),導(dǎo)線(xiàn)必須連接到觸點(diǎn)才算連接完成,系統(tǒng)根據(jù)導(dǎo)線(xiàn)的連接方式計(jì)算電路的電壓電流、最終決定電器以及整個(gè)電路的狀態(tài),此方案設(shè)計(jì)的好處是允許多觸點(diǎn)儀器的存在(如滑動(dòng)變阻器和許多測(cè)試儀器入電流表就有多個(gè)觸點(diǎn),另外它還具有仿真實(shí)驗(yàn)室的效果,甚至還可以使用簡(jiǎn)單元件來(lái)實(shí)現(xiàn)復(fù)雜儀器的組裝)。
?。?)力與運(yùn)動(dòng)學(xué)部分開(kāi)發(fā)
力與運(yùn)動(dòng)學(xué)部分包括微觀熱學(xué)、電磁力學(xué)部分、功與機(jī)械能部分、機(jī)械運(yùn)動(dòng)、碰撞等,它是物理學(xué)科最大的一部分內(nèi)容。物理現(xiàn)象通常是通過(guò)物體運(yùn)動(dòng)表現(xiàn)的,這種運(yùn)動(dòng)又是不可視的,因此第一層級(jí)的力學(xué)部分積件庫(kù)涉及不到力和運(yùn)動(dòng),通常僅僅繪制一些常見(jiàn)的物理儀器。第二層級(jí)就要構(gòu)建運(yùn)動(dòng)類(lèi),F(xiàn)lash自帶Tween類(lèi)就能解決開(kāi)發(fā)運(yùn)動(dòng)類(lèi)所需的基本功能,對(duì)于使用者來(lái)說(shuō),掌握運(yùn)動(dòng)類(lèi)的方法和屬性會(huì)有一些難度,如下例的代碼是控制一個(gè)小球跳動(dòng),直到能量損失完停止。
#include "lmc_tween.as"
$tweenManager.broadcastEvents = true;
小球.彈起 = true;
小球.高度 = 200;
衰減系數(shù) = 0.2;
跳躍時(shí)間 = 1;
小球.onPress = function() {
小球.tween("_