原貼地址:http://bbs.blueidea.com/viewthread.php?tid=2529810

點擊下載,觀看效果...

參考了一些FLASH8的幫助文檔。
以下主要使用到了bitmapData類,使用了attachBitmap方法,使用了draw方法。
使用了矩陣Matrix。使用了矩陣的scale方法等。。。

以下是代碼部分:

程序代碼 程序代碼
//FLASH多圖片動態像素變換切換-FLASH圖片切換特效
//開發環境:flash 8.0   Actionscript:2.0
//版權所有:Bible. "http://www.flashlive.net/"
//開始。。。。

//1[注意!]先打開在FLASH新建一個空MC,賦實例名為o_mc後放在工作區任意地方

//2在第一禎寫上如下代碼後,將準備好的圖片300px X 200px的5張JPG圖片放到與最後發佈的swf文件
//同一目錄中,運行SWF後可以查看效果。
//關於DIY和修改:
//1。修改totalpicnum,設置放多少張圖片。2。修改圖片尺寸,將對應工作區設置成一樣即可。
//3.修改pic數組。

stop();
var pic:Array=new Array();
var totalpicnum=5
pic=["1.jpg","2.jpg","3.jpg","4.jpg","5.jpg"];

var pic_cur=pic.length-1

_root.createEmptyMovieClip("loader",this.getNextHighestDepth());
_root.createEmptyMovieClip("o_mc",this.getNextHighestDepth());
_root["o_mc"].loadMovie(pic[pic_cur],name,this.getNextHighestDepth());
loader._y=o_mc._y+o_mc.height;
loader._x=o_mc._x+o_mc.width;
var i:Number=0;
var num:Number=Math.floor(Math.random(5));
var pixelsize=1;

function pic_pixel_effect()
{
var bitmapData=new flash.display.BitmapData(o_mc._width/pixelsize,o_mc._height/pixelsize,false);
loader.attachBitmap(bitmapData,this.getNextHighestDepth());
var scaleMatrix=new flash.geom.Matrix();
scaleMatrix.scale(1/pixelsize,1/pixelsize);
bitmapData.draw(o_mc,scaleMatrix);
loader._width=o_mc._width;
loader._height=o_mc._height;
pixelsize*=1.1;
if(pixelsize>80){
    pixelsize=1;
    pic_cur--;
    trace(pic[pic_cur]);
    _root["o_mc"].loadMovie(pic[pic_cur],name,this.getNextHighestDepth());
    if(pic_cur == 0){
        pic_cur=totalpicnum;}
}

}
onEnterFrame=function(){
    pic_pixel_effect();

}


該FLASH特效預覽:http://www.flashlive.net/pix/index.htm
該FLASH的FLA源文件下載地址:http://www.flashlive.net/pix/pix.fla
創作者介紹
創作者 kevin0523 的頭像
kevin0523

新‧夢想

kevin0523 發表在 痞客邦 留言(0) 人氣()