AS2图片柔化,旋转消锯齿

By:小明 Date:2009-06-03

Flash8时代出现的,最近在帮朋友网站弄个一个Flash时,朋友给我的一个函数,晚上查了一下. 有两个版本:

MovieClip.prototype.smoothImageLoad = function(img) {
var listener = new MovieClipLoader();
listener.onLoadComplete = function(mc:MovieClip) {
mc.onEnterFrame = function() {
bitmap = new flash.display.BitmapData(this._width, this._height);
bitmap.draw(this);
this.attachBitmap(bitmap, 1, "auto", true);
this.smoothImageLoadComplete();
}
};
listener.loadClip(img, this);
};
this.createEmptyMovieClip("mc", 0);
mc.smoothImageLoad("doggy.jpg");
mc._xscale = mc._yscale=400;

另外一个版本:

_global.smoothImageLoad = function(imgURL, targetMovie) {
var i=0
do { i++ } while (eval("_root.smoothImageLoadTemp"+i) != undefined)
tmc = _root.createEmptyMovieClip("smoothImageLoadTemp"+i, _root.getNextHighestDepth())
tmc.createEmptyMovieClip("ti", tmc.getNextHighestDepth())
tmc.tm = targetMovie
with(tmc) {
tmcl = new MovieClipLoader()
tmcl.onLoadComplete = function() {
ti.onEnterFrame = function() {
pixelData = new flash.display.BitmapData(ti._width, ti._height);
pixelData.draw(ti);
tm.attachBitmap(pixelData, 1, "auto", true);
tm.smoothImageLoadComplete()
removeMovieClip(ti._parent)
}
}
tmcl.loadClip(imgURL, tmc.ti)
}
}
smoothImageLoad("xxx.jpg", mymc);

 

研究了一下,好像所谓柔化就是attachBitmap函数的第四个参数[ smoothing:Boolean [可选] ─ 平滑处理模式为 true(表示启用)或 false(表示禁用)。默认模式为禁用。]

两个版本基本原理一样,主要的功能,在flash里图片旋转之后会出现锯齿,用这个函数处理后,就好多了.

效果显示:Friends8.com 首页右侧中间的一个小flash,就把图片旋转了一下,加上函数后锯齿就不那么明显了.

下图所示

 

 

参与讨论去: 艾睿(Airia) 交朋友去:友吧推荐文章去:网站贴吧
企业招聘

北京中视力天文化传媒有限公司

公司简介:北京中视力天文化传媒有限公司,是CCTV.com央视国际网络有限公司投资的互联网研发团队。我们是天使的使者。。。

招聘FlashAS程序员详情点击

Copyright 2007-2008 51AS.com Extended in kingcms 鲁ICP备06001158号