用flash製作課件時,為了方便製作和測試,有時也是為了方便控制動畫的播放與停止,往往把課件分割成若干個部分,每部分做成一個小動畫,然後做一個主介面,在需要小動畫時,點選主介面上的按鈕,就會載入並播放相應的小動畫。這樣的效果怎樣實現呢?
工具/原料
win7+flash cs 5.5+as3.0
步驟/方法
使用“匯入類”及相關包
import flash.display.Loader;//載入外部資源的類
import flash.net.URLRequest;//負責地址請求與解析的類
import flash.display.Sprite;//容器
importflash.events.MouseEvent;//滑鼠事件
由這些類相互作用,完成對下圖的小動畫的載入。
外部小動畫整合陣列
var url=[“mc0.swf”,"mc1.swf","mc2.swf","mc3.swf"];//字串型
var index:uint=0;//陣列指標,指示當前播放的是第幾個小動畫
var box:Sprite =new Sprite();//載入播放小動畫的容器
this.addChild(box);//容器顯示在舞臺上,備用。
小動畫必須與主檔案在同一個目錄下。這樣才能正確載入。否則會出現如下錯誤:
主函式負責刪除載入
引數:第幾個小動畫
function mian(n:uint=0):void {
var lt:Loader=new Loader();//例項化載入類
var mURL:URLRequest=new URLRequest(url[n]);//例項化資料請求類
lt.load(mURL);//載入…
while (box.numChildren>0) {//清空容器裡已經有的動畫….
box.removeChildAt(0); //這個關鍵….
}
box.addChild(lt);//顯示新的動畫
}
看,能夠成功匯入了:
預設載入片頭
mian(index);//自動播放第一個swf;
按鈕控制載入
按鈕數字化了,方便辨認。
按鈕程式碼:
Btn1.addEventListener(MouseEvent.CLICK,nextSwf);
Btn2.addEventListener(MouseEvent.CLICK,nextSwf);
Btn3.addEventListener(MouseEvent.CLICK,nextSwf);
Btn4.addEventListener(MouseEvent.CLICK,nextSwf);
function nextSwf(e) {
index= e.target.name.substr(4,1)//按鈕名字中的第四個字元,就是數字
mian(index);//播放swf
}
來自實踐的體會 絕對原創的經驗
作者:張志晨
2012.5.13