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