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,就把图片旋转了一下,加上函数后锯齿就不那么明显了.
下图所示

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