方便調用27種flash圖片切換特效

網上一直都是說,用flash做的課件功能比PPT強大些,但是用flash做課件時,其實面臨着一個尷尬的問題,就是遇上課件中需要切換顯示大量圖片時,做起來相當麻煩,至少比在PPT中做時要麻煩許多,網上也流傳着用 transitions 及 tween類切換圖片,但要麼不實用,要麼效果單調,經過慢慢分析這兩種類的用法後,犧牲一個下午終於在flash中把flash中切換顯示圖片這個另人頭痛的問給解決了,共27種圖片切換特效,以後做課件又可以省不少力了,直接準備好圖像文件調用即可,代碼帖出如下:

//首先準備十四張圖片在 .fla 文件相同目錄下,文件名分別爲: 1.jpg ,2.jpg,...,14.jpg
//該段代碼在第一個關鍵幀複製過去即可
//該段代碼在理解時,要弄清flash as 中的數組時面向對象的,否則該段程序可能有些不好懂的哦

import mx.transitions.*;
import mx.transitions.easing.*;
fscommand("fullscreen", true); //全屏

var showID:Number = 0; //特效類型代碼

var mc_array = new Array(14);//定義數組準備存儲14個mc對象,其中每個mc對象在後面將加載圖片

//定義數組存儲27種圖片切換參數,其中各特效具體參數還可直接在其中更改
var str_array = new Array(27); //flash 中的數組是面向對象的,大家學了C後這點變通應該沒有問題吧
//遮簾(縱向、橫向)
str_array[0] = {type:Blinds, direction:Transition.IN, duration:2, easing:None.easeNone, numStrips:20, dimension:0};
str_array[1] = {type:Blinds, direction:Transition.IN, duration:2, easing:None.easeNone, numStrips:20, dimension:1};
//淡化過渡(淡入、淡出)
str_array[2] = {type:Fade, direction:Transition.IN, duration:3, easing:None.easeNone};
str_array[3] = {type:Fade, direction:Transition.OUT, duration:3, easing:None.easeNone};
//飛行過渡(九個不同的方向)
str_array[4] = {type:Fly, direction:Transition.IN, duration:3, easing:Elastic.easeOut, startPoint:1};
str_array[5] = {type:Fly, direction:Transition.IN, duration:3, easing:Elastic.easeOut, startPoint:2};
str_array[6] = {type:Fly, direction:Transition.IN, duration:3, easing:Elastic.easeOut, startPoint:3};
str_array[7] = {type:Fly, direction:Transition.IN, duration:3, easing:Elastic.easeOut, startPoint:4};
str_array[8] = {type:Fly, direction:Transition.IN, duration:3, easing:Elastic.easeOut, startPoint:5};
str_array[9] = {type:Fly, direction:Transition.IN, duration:3, easing:Elastic.easeOut, startPoint:6};
str_array[10] = {type:Fly, direction:Transition.IN, duration:3, easing:Elastic.easeOut, startPoint:7};
str_array[11] = {type:Fly, direction:Transition.IN, duration:3, easing:Elastic.easeOut, startPoint:8};
str_array[12] = {type:Fly, direction:Transition.IN, duration:3, easing:Elastic.easeOut, startPoint:9};
//光圈過渡
str_array[13] = {type:Iris, direction:Transition.IN, duration:2, easing:Strong.easeOut, startPoint:5, shape:Iris.CIRCLE};
//漸變暴光
str_array[14] = {type:Photo, direction:Transition.IN, duration:1, easing:None.easeNone};
//像素溶解
str_array[15] = {type:PixelDissolve, direction:Transition.IN, duration:2, easing:None.easeNone, xSections:50, ySections:50};
//旋轉過渡
str_array[16] = {type:Rotate, direction:Transition.IN, duration:3, easing:Strong.easeInOut, ccw:false, degrees:360};
//擠壓過渡(二個方向)
str_array[17] = {type:Squeeze, direction:Transition.IN, duration:2, easing:Elastic.easeOut, dimension:1};
str_array[18] = {type:Squeeze, direction:Transition.IN, duration:2, easing:Elastic.easeOut, dimension:2};
//劃入劃出過渡--左上,1;上中,2;右上,3;左中,4;右中,6;左下,7;下中,8;右下,9
str_array[19] = {type:Wipe, direction:Transition.IN, duration:2, easing:None.easeNone, startPoint:1};
str_array[20] = {type:Wipe, direction:Transition.IN, duration:2, easing:None.easeNone, startPoint:2};
str_array[21] = {type:Wipe, direction:Transition.IN, duration:2, easing:None.easeNone, startPoint:3};
str_array[22] = {type:Wipe, direction:Transition.IN, duration:2, easing:None.easeNone, startPoint:4};
str_array[23] = {type:Wipe, direction:Transition.IN, duration:2, easing:None.easeNone, startPoint:6};
str_array[24] = {type:Wipe, direction:Transition.IN, duration:2, easing:None.easeNone, startPoint:7};
str_array[25] = {type:Wipe, direction:Transition.IN, duration:2, easing:None.easeNone, startPoint:8};
str_array[26] = {type:Wipe, direction:Transition.IN, duration:2, easing:None.easeNone, startPoint:9};
//彈性縮放
str_array[27] = {type:Zoom, direction:Transition.IN, duration:2, easing:Elastic.easeOut};

//採用數組載入全部圖片,注:直接全部載入比較耗內存,如要節約內存的話,可定義兩個mc採用類似雙緩衝法進行改寫,不過在這裏重點是寫出flash中內置的全部圖片切換特效,以後有時間再改進
for (i=0; i<=13; i++) {
mc_array[i] = _root.createEmptyMovieClip("mc"+String(i+1), i+1);
mc_array[i].loadMovie(String(i+1)+".jpg", i+1);
}

//載入圖片後,把各圖片 mc 的位置擺放整齊,這裏每張圖片的大小都經過處理,尺寸完全一樣(改變圖片大小用photoshop一張張處理的話,比較麻煩,但是以前在做政務公開系統更新程序的時候,寫過一個程序,來個批處理,眨幾下眼的時間二、三十張圖片就都處理完了。
for (i=1; i<=14; i++) {
     with(eval("mc"+i))
{
     _x=20;
    _y=40;
    _xscale=120;
    _yscale=120;
}
}

//設置定時器調用圖片切換函數
setInterval(showImages, 4000);  
//圖片切換函數
function showImages() {
mx.behaviors.DepthControl.bringToFront(mc_array[showID]); // 將下一個要切換的 mc 置頂
mx.transitions.TransitionManager.start(mc_array[showID], str_array[random(27)]); //隨機特效將圖片按順序切換
if (showID++ == 13) {
   showID = 0;
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章