|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Flash是一个非常优秀的矢量动画制作软件,它以流式控制技术和矢量技术为核心,制作的动画具有短小精悍的特点,所以被广泛应用于网页动画的设计中,以成为当前网页动画设计最为流行的软件之一。
一样平常完成马赛克有2种举措,接纳的都是遍历图象上的像素,对相隔必定局限内的像素添补统一色彩,只不外采样的色彩地位分歧,有选中央点的,也有选局限内全体像素均匀值的,思索到flash的效力成绩,这个是选择中央点的,能够免却大批轮回
同时注重stride要4的倍数,否则的话..本人看吧.哈哈(月光注:实在用2的倍数也就能够了)
importflash.display.BitmapData;
//场景中摆个叫img的mc就ok
varoldBmp:BitmapData=newBitmapData(img._width,img._height);
oldBmp.draw(img);
varnewBmp:BitmapData=mosaic(oldBmp,12);
varmc=createEmptyMovieClip("mc",1);
mc.attachBitmap(newBmp,getNextHightestDepth());
mc._x=img._width;
functionmosaic(bmp:BitmapData,stride:Number):BitmapData{
varstartTime=getTimer();
varnewBmp:BitmapData=newBitmapData(bmp.width,bmp.height);
varw=bmp.width/stride+1;
varh=bmp.height/stride+1;
varedgeW=bmp.width%stride;//边沿不敷stride的部分
varedgeH=bmp.height%stride;
varcenterW=(stride-1)/2;//第一格的中央点
varcenterH=centerY;//第一格永久是方的
vartmpX,tmpY;//轮回中的实在像素地位,后面w,h被除过了..
varblockW,blockH;//马赛克的格子
vari=-1;
while(++i<w){
tmpX=i*stride;
if(i==w-1){
blockW=edgeW;
}else{
blockW=stride;
}
centerW=(blockW-1)/2;
varj=-1;
while(++j<h){
tmpY=j*stride;
if(i==h-1){
blockH=edgeH;
}else{
blockH=stride;
}
centerH=(blockH-1)/2;
varcolor=bmp.getPixel(tmpX+centerW,tmpY+centerH);
varm=-1;
while(++m<blockW){
varn=-1
while(++n<blockH){
newBmp.setPixel(tmpX+m,tmpY+n,color);
}
}
}
}
trace("Cost:"+(getTimer()-startTime));
returnnewBmp;
}
以上代码请用FLASH8编译实行.
下载FLA文件
下载SWF文件
论坛原文:http://www.blueidea.com/bbs/NewsDetail.asp?id=2535173
ActionScript是一种程序语言的简单文本文件.FLA档案能够直接包含ActionScript。 |
|