金宜亮
摘要:隨著信息技術的迅猛發(fā)展,多媒體技術在教育教學上的應用變得越來越廣泛,也越來越重要?;ヂ?lián)網上有關畫簡諧運動圖像的課件由于所用的腳本多為as1.0腳本,十分落后于flash腳本語言的發(fā)展,在編程上顯得繁瑣,交互性也不強,而且繪圖過程也不真實。鑒于此,本文講述了用最新的flash腳本語言——as3.0腳本語言,制作繪制彈簧振子的簡諧運動圖像的過程和方法以及利用本課件師生如何進行課堂交互和探究學習的flash課件的方法。
關鍵詞:flash課件;as3.0腳本;交互;探究
中圖分類號:TP37 文獻標志碼:B 文章編號:1674-9324(2012)01-0205-02
隨著信息技術的發(fā)展,多媒體教學越來越受到老師們的喜愛。而flash,因為其設計制作的課件具有交互性強、界面美觀、形象生動等特點也成為老師們的至愛,我在學習flash腳本時,曾經在網上發(fā)現(xiàn)了一個繪制簡諧運動振動圖像的課件,發(fā)現(xiàn)其腳本是as1.0的,一個并不復雜的動畫,分布在各處的代碼足足有五六百行,而且交互性并不好,動畫也不太真實。我根據(jù)自己上課的需要,用最新的flash cs5軟件和as3.0腳本設計制作了一個畫彈簧振子做簡諧運動的振動圖像并可以進行課堂探究、交互性較強的課件。下面我將設計思路和設計過程和大家分享,不當之處請各位老師批評指正。
一、教學需求分析
課件能實時繪出做簡諧運動的振動圖像;課件應能通過鍵盤輸入數(shù)字,改變玻璃板的運動速度;課件應能對比在玻璃板以不同速度運動時,振動圖像的區(qū)別,并進行探究分析;課件還應具有清除所畫圖像以及玻璃板可拖動的功能等。
二、界面部分的制作
1.啟動flash cs5,新建flash3.0文檔。設置文檔大小為800px×600px,背景色為藍色0x669900,幀頻為24.
2.在場景圖層1上新建三個影片剪輯元件。輕質彈簧、振子和玻璃板,分別命名為tanhuan、zhenzi和paper。
3.新建圖層2,從公用庫—按鈕里拖出三個按鈕,放到圖層2合適的位置。分別命名為start_btn,clear_btn,stop_btn,用來控制播放和進行交互。
4.新建圖層3,在圖層3上用文本工具拉出一個輸入文本框,將框命名為v_txt。
5.制作一個課件使用說明的影片剪輯,命名為shmwz,再畫一個按鈕元件,取名為shum_btn,也拖到舞臺上。
至此,舞臺上的演員已經布置完畢,下面就輪到as3.0腳本大顯身手了,它可實現(xiàn)動作和交互。
三、flash腳本的編寫
首先新建圖層4,將該圖層改名為as。下面的腳本代碼全部寫在as圖層的第一幀上。(當然你也可以把代碼寫在外部的as類文件上)為便于讀者讀代碼,我在代碼上加了一些必要的注釋。
var pp:Point=new Point();
var pp1:Point=new Point();
var line:Shape=new Shape();
var p:Point=new Point();
var t:Number=0;
var flag:Boolean=false;
paper.oldy=paper.y;
paper.oldx=paper.x;
tanh.Width=tanh.width;
mc.oldx=mc.x;
mc.oldy=mc.y;
start_btn.addEventListener(MouseEvent.CLICK,onstart);
clear_btn.addEventListener(MouseEvent.CLICK,onclear);
function onstart(e){
paper.addEventListener(Event.ENTER_FRAME,paperframe);
mc.addEventListener(Event.ENTER_FRAME,mcframe);
addEventListener(Event.ENTER_FRAME,frame);
}
//清除所畫圖線
function onclear(e){
removeEventListener(Event.ENTER_FRAME,frame);
mc.removeEventListener(Event.ENTER_FRAME,mcframe);
paper.removeEventListener(Event.ENTER_FRAME,paperframe);
init();
flag=!flag;
flag?line.graphics.clear():0;
}
function frame(e)
{
p.x=mc.x;
p.y=mc.y;
var p1:Point=paper.globalToLocal(p);
line.graphics.lineTo(p1.x,p1.y);
paper.addChild(line);
}
function mcframe(e){
t+=0.15;
mc.x=mc.oldx;
mc.x=paper.x+60*Math.sin(t);
tanh.width=mc.x-tanh.oldx;
}
function paperframe(e)
{paper.y+=v;
if (paper.y> paper.height/2)
{
paper.removeEventListener(Event.ENTER_FRAME,paperframe);
}}
好,腳本到此結束。右側兩圖是課件運行時的兩幅截圖。有了as3.0腳本,課件的交互性更強了,課件也更有“魂”、更有“神”了。