程海生
在多媒體網(wǎng)絡(luò)教學(xué)環(huán)境中,一些學(xué)科經(jīng)常要用到各種工具在課件上進(jìn)行實驗,這就需要能在課件中對各種工具進(jìn)行靈活的操作,需要進(jìn)行的操作通常有拖動、旋轉(zhuǎn)。在Flash中,拖動操作比較容易實現(xiàn),而要實現(xiàn)靈活的旋轉(zhuǎn)就需要動一動腦筋。下面以數(shù)學(xué)課中用“量角器”測量角的度數(shù)為例,提供一種在“實驗型課件”中讓實驗工具自由移動和旋轉(zhuǎn)的方法。
首先啟動Flash,選擇創(chuàng)建新Flash文檔,然后將第一層重命名為“題”,在第一幀上使用“文本工具”輸入問題,用“線條工具”繪制幾個不同大小不同方向的角。(如圖1所示)
在插入菜單選擇“新元件”,插入名稱為“點”的影片剪輯元件,在影片剪輯的中心位置繪制一個紅色的小圓點。同樣,插入一個名稱為“量角器”的影片剪輯元件,將它的第一層重命名為“量角器”,在第一幀上繪制一個量角器。注意,一定要把量角器的圓心與影片剪輯的中心對齊。這樣,才能保證旋轉(zhuǎn)量角器時以圓心為中心轉(zhuǎn)動。在“量角器”元件里插入一個新層將其重命名為“點”,從庫中將“點”影片剪輯元件拖動到量角器的一角上。(如圖2所示)
單擊選擇紅色圓點,在屬性面板中將實例名稱命名為“b”。(如圖3所示)
選擇實例“b”(小紅點),右擊在快捷菜單中選擇“復(fù)制”命令,然后在“編輯”菜單中選擇“粘貼到當(dāng)前位置”,選中這個新的小紅點,在屬性面板中將其命名為“a”。這樣,實例“a”和實例“b”兩個小紅點正好重合。右擊選擇“粘貼”命令,又出現(xiàn)一個小紅點,將其拖動到量角器的圓心上,并在屬性面板中將其命名為“o”。
返回主場景,新建一個圖層將其命名為“量角器”,從庫中將“量角器”影片剪輯拖動到舞臺上,并在屬性面板中將其命名為“l(fā)jq”。(如圖4所示)
雙擊量角器,打開“量角器”影片剪輯,在第一幀上添加如下語句:
stop();
//變量n用于保存旋轉(zhuǎn)的角度
n=0;
//使實例b不可見
b._visible=false;
//創(chuàng)建drawline自定義函數(shù),用于a,b兩點間畫線;
function drawline(){
//先清除畫面內(nèi)容
clear();
//設(shè)置線條樣式
lineStyle(1,0xcc6622,50);
//設(shè)定線條的開始點;
moveTo(o._x,o._y);
//繪制直線段,連接實例a,b;
lineTo(a._x,a._y);
}
function rotation(){
//下面三句為計算出以實例o,a,b為頂點的三角形三邊的長,
l1=Math.sqrt(Math.pow(a._x-o._x,2)+Math.pow(a._y-o._y,2));
l2=Math.sqrt(Math.pow(b._x-o._x,2)+Math.pow(b._y-o._y,2));
l3=Math.sqrt(Math.pow(b._x-a._x,2)+Math.pow(b._y-a._y,2));
//用余弦定理計算出角aob的余弦值,并計算出角aob的弧度
x=Math.acos((Math.pow(l1,2)+Math.pow(l2,2)-Math.pow(l3,2))/(2*l1*l2));
//以下兩句用直線方程,算出旋轉(zhuǎn)的方向
y4=(b._y-o._y)/(b._x-o._x)*a._x+(o._y*b._x-b._y*o._x)/(b._x-o._x);
if((b._x>o._x&&y4>=a._y)||(b._x //以下兩句根據(jù)不同旋轉(zhuǎn)方向,計算旋轉(zhuǎn)的角度并進(jìn)行旋轉(zhuǎn) n=n-x/Math.PI*180;}else{n=n+x/Math.PI*180;} setProperty(_root.ljq,_rotation,n); //以下兩句使點a回到原位 a._x=b._x; a._y=b._y; //清除畫線 clear(); } 選擇實例“a”,在其上添加如下語句: //按下時拖動小球; on(press){ this.startDrag(true); } //放松時停止拖動并進(jìn)行旋轉(zhuǎn); on(release){ this.stopDrag(); _parent.rotation(); } //當(dāng)鼠標(biāo)在b上移動時運行其中的代碼; onClipEvent(mouseMove){ //調(diào)用函數(shù)drawline開始繪制直線; _parent.drawline(); //強(qiáng)制刷新畫面; updateAferEvent(); } 拖動量角器上的小紅點,量角器便可以圓心為中心自由旋轉(zhuǎn)了。下面,我們還要讓它自由的移動,只需給它添加幾句用于拖動的語句。為了不與用于旋轉(zhuǎn)的小紅點相互影響,將用于拖動的語句放到按鈕上,操作如下: 在“量角器”元件中新建一個圖層,將其命名為“按鈕”,繪制一個比量角器稍小的半圓。(如圖5所示) 選中剛畫好的半圓,按F8將其轉(zhuǎn)為名為“按鈕”的元件,雙擊按鈕將其打開,在“按鈕”元件中將第一幀拖至第四幀,讓前三幀空白,這樣在播放時按鈕就不可見了。 返回到“量角器”元件,在剛做好的按鈕上添加如下語句: //鼠標(biāo)按下時開始拖動量角器 on(press){startDrag(_root.ljq)} //停止拖動 on(release){stopDrag()} 這樣,一個自由旋轉(zhuǎn)和移動的實驗工具就制作完成了,我們可以用它去測量任意大小和方向的角。