仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 926|回复: 7
打印 上一主题 下一主题

[学习教程] 来一发FLASH AS 完成马赛克效果

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-15 22:43:23 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-31 21:17

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表