盤俊春
很多教師會碰到這樣的問題,面對海量的網(wǎng)絡資源很難找到一個適合自己使用的課件。由于一般的課件如exe、swf等格式打包后都不能修改,教師很難增加自己的教學內容,如何把課件做“活”,避免大量重復的工作,提高課件的制作效率呢?我認為如果能夠利用“封裝”思想制作課件,經(jīng)過一段時間的積累,你會發(fā)現(xiàn)課件的制作效率大大提高。下面通過舉例,說明類“封裝”思想在Flash CS3課件制作中的應用。
一、什么是類“封裝”
在Flash中,類(Class)定義為一類對象。類是描述對象的屬性(數(shù)據(jù))和方法(行為),這與描述建筑物特性的建筑藍圖相似??梢栽谕獠?ActionScript(AS)文件中編寫自定義類,并且在編譯fla文件時將其導入到應用程序中?!胺庋b”(Encapsulation)指的是將實現(xiàn)的細節(jié)隱藏起來,只將必要的功能接口對外公開。舉個簡單的例子:使用DVD機時,把DVD機的視頻輸出端和電視機輸入端用線連在一起就可以顯示圖像了,聲音也是一樣。但為什么會實現(xiàn)呢?這些細節(jié)我們并不知道。對使用者來說,也不需要知道。封裝就像DVD機一樣,只將必要的功能通過接口暴露,而不需要使用者知道內部實現(xiàn)的細節(jié)。
二、類“封裝”的好處
通過以上介紹,對類和封裝有了初步了解后,再來說說為什么要對課件進行封裝。
1.“封裝”使修改和制作課件簡易化
利用類“封裝”制作課件,只要把能實現(xiàn)教學目標的相關功能模塊組合起來,改改參數(shù)就行了。例如,想制作“函數(shù)的圖像”課件,可以用已經(jīng)“封裝”好的函數(shù)繪圖功能類,直接修改一下參數(shù),就可以很快繪制出自己想要的圖像了。
2.“封裝”將課件整體分解成相對獨立的單元
課件被分解成一個個相對獨立的單元后,易于修改和替換。最小的單元被認為是單個的“類”(有些教師把最小單元稱為小積件、小課件)。例如本文將要介紹的“函數(shù)繪圖類”就是這樣的一個單元。我們把一個個小單元組合起來就可以形成一個完整的課件了。
3.“封裝”讓教師從制作課件的負擔中解脫出來
許多教師除了每周需要上近20節(jié)課之外,還有大量的管理工作。這也決定了教師不可能利用大量的時間去制作課件。此時,要想高效地制作出適合自己的課件就相當有現(xiàn)實意義了。如果每位教師都用“封裝”思想制作課件,然后再把自己的功能類小積件進行共享,經(jīng)過一定時間的積累后,輕松制作出功能強大、交互性強的課件將不再是夢想。
實例:函數(shù)圖像類“封裝”
下面通過一個實例分析如何在Flash CS3課件制作中實現(xiàn)類“封裝”。如何定義一個新的類呢?Flash CS3和Flash8有些不同,例如:
package { //固定的格式,定義包
public class Hello { //定義類名
public function Hello() { //定義與類名同名的函數(shù)
trace("Hello!");
}
}
}
對于一般教師來說,類是高深莫測的一個名詞,初學者基本都不敢去接觸它。通過上例發(fā)現(xiàn),其實類也不是很復雜,主要有三層,包→類→函數(shù)。像package、class、public都是固定的關鍵字。
下面以繪制函數(shù)圖像類(二次函數(shù))為例,說明如何進行類“封裝”,具體步驟如下。
(1)打開Flash CS3中文版,新建一個外部ActionScript文件(*.as),命名為“fun”,注意名稱一定要和代碼中的類名稱相同。
(2)進入腳本編輯窗口,在窗口中輸入以下代碼:
package {
import flash.display.Sprite;//導入顯示類
public class fun extends Sprite {//定義名為“fun”的類
private var a:Number;
private var b:Number;
private var c:Number;//定義變量,分別是二次函數(shù)的三個系數(shù)
public function fun(a:Number=1,b:Number=1,c:Number=1) {
this.a=a;
this.b=b;
this.c=c;
init();
}//定義“fun”函數(shù)
public function init():void {
var func1=function(x){
return -0.05*a*x*x+b*x +c;
};//構造二次函數(shù),其中-0.05只是把圖像放大,并使開口向上
graphics.lineStyle(1,0xff0000,100);
graphics.moveTo(-400 , func1(0));
for (var i=-400; i < 400; i++) {
graphics.lineTo( i, func1(i));
}//繪制二次函數(shù)
}
}
}
輸入后保存退出。這段代碼對具有一定Flash編程能力的教師能理解,對一般教師來說,只要會使用就可以了。
(3)建立類后就可以使用了。新建一個Flash文檔,文檔屬性設置為默認,在Flash文檔中主場景的第一幀輸入代碼。
var a=new fun(1,1,1);//繪制一個二次函數(shù),系數(shù)都是1
a.x=300;
a.y=300;//設置圖像在舞臺中的位置
addChild(a);//把圖像添加到舞臺上
(4)把新建的Flash文檔文件和“fun”類放在同一個文件夾中,在Flash文檔中測試效果即可,效果如圖1所示。
(5)今后如果要制作一個新的課件,我們只要簡單修改數(shù)字和函數(shù)式,就可以輕松繪制出其他函數(shù)的圖像了,極大提高了課件制作的效率。例如,繪制一個三次函數(shù)圖像的時候,只要把類代碼中的二次函數(shù)式“-0.05*a*x*x+b*x+c”改成“-0.05*a*x*x+b*x*x+c*x”即可,如圖2所示。
當然也可以通過“var a=new fun(1,1,1)”改變參數(shù),繪制出自己想要的圖像。
通過上例,成功實現(xiàn)了函數(shù)圖像類的“封裝”,它的接口是“var a=new fun(1,1,1)”,教師只要改動函數(shù)中的參數(shù)就可以實現(xiàn)想要的功能。
利用類“封裝”思想制作課件,將會減少工作量,不但可以簡單高效地制作課件,而且制作出的課件交互性也會增強。
(本文所用到的源程序網(wǎng)址:http://www.hzgz.net/pjc/類“封裝”思想在FlashCS3課件制作中的應用.rar)
(作者單位:廣西賀州高級中學)