详细代码:
var h:Number=stage.stageHeight;
var num:uint=50;
var k:uint=0;
var n:uint=0;
var vh:uint=20;
var m:uint=0;
var j:uint=0;
var arr:Array=[];
var crr:Array=[Pic1,Pic2,Pic3,Pic4,Pic5,Pic6,Pic7,Pic8];//源位图数组
//=====================位图背景
var pic0:BitmapData=new Pic0(0,0);
var bimap0:Bitmap=new Bitmap(pic0);
bimap0.width=550;
bimap0.height=400;
addChild(bimap0);
bimap0.y=(stage.stageHeight-bimap0.height)/2;
//=================
var sp:Sprite=new Sprite ();
addChild(sp);
arr=fg(crr);
addEventListener(Event.ENTER_FRAME,f);//
//==========分割图片
function fg(drr:Array):Array {
var brr:Array=[];//放置分割小位图 的影片剪辑
var pic:BitmapData=new drr[j%drr.length](0,0);//
j++;
for (var i:uint=0; i<num; i++) {
var w:Number=pic.width;
var h:Number=pic.height;
var bmd:BitmapData=new BitmapData(w/num,h);//创建小位图条
var bmp:Bitmap=new Bitmap(bmd);
bmd.copyPixels(pic,new Rectangle(i*w/num,0,w/num,h),new Point(0,0));//拷贝源位图到小位图条
var mc1:MovieClip=new MovieClip();
mc1.addChild(bmp);
mc1.x=i*w/num;
mc1.height*=3;
//mc1.scaleY=3;
mc1.y=(stage.stageHeight-mc1.height)/2;
mc1.alpha=0.5;
brr.push(mc1);//压入存放小位图的影片剪辑mc
//sp.addChild(mc1);
}
return brr;
}
//==============================
function f(e:Event) {
m=0;
k<=2*(num-1)&&k%2==0?[sp.addChild(arr[k/2]),arr[k/2].addEventListener(Event.ENTER_FRAME,mcf)]:0;
k++;
k>2*(num-1)?[k=0,n=0,removeEventListener(Event.ENTER_FRAME,f)]:0;
}
//===============
function mcf(e:Event) {
var mc:MovieClip=e.target as MovieClip;//获取侦听目标对象影片剪辑
if (mc.height>400) {
mc.height-=vh;
//mc.y+=vh/2;
mc.y=(stage.stageHeight-mc.height)/2;
mc.alpha+=0.05;
} else {
arr.indexOf(mc)==num-1?n++:0;
if (n>=10&&mc.alpha>0) {//判断小位图条淡出的条件
mc.alpha-=0.03;//
} else if (mc.alpha<=0) {
mc.removeEventListener(Event.ENTER_FRAME,mcf);
m++;//对移除小位图帧频侦听的个数计数
if (m==num) {
//k=0;
//n=0;
arr=fg(crr);
for (var i:int=sp.numChildren-1; i>=0; i--) {
sp.removeChildAt(0);
}
addEventListener(Event.ENTER_FRAME,f);
mc.removeEventListener(Event.ENTER_FRAME,mcf);
}
}
}
} |