// Soft Edge Prototype
//
// V1.0 by Mario Klingemann
// www.quasimondo.com
//
// Usage:
// MovieClip.softEdge(Blur Radius,Background Color);
MovieClip.prototype.drawRect2 = function(x1, y1, x2,y2) {
this.moveTo(x1, y1);
this.lineTo(x2, y1);
this.lineTo(x2, y2);
this.lineTo(x1, y2);
this.lineTo(x1, y1);
};
MovieClip.prototype.softEdge = function(blur, color) {
this.createEmptyMovieClip("se_cover",1970)
var b=this.getBounds(this)
this.se_cover.clear()
trace(this.cover);
for (var i = 0; i<=blur; i++) {
this.se_cover.lineStyle(3,color, 100-(100/blur)*i);
this.se_cover.roundRect(b.xMin+i, b.yMin+i, b.xMax-i, b.yMax-i, blur-(i*2/3));
}
trace(this.se_cover);
this.se_cover.lineStyle();
this.se_cover.beginFill(color,100)
this.se_cover.drawRect2(b.xMin-1, b.yMin-1, b.xMax+1, b.yMax+1)
this.se_cover.roundRect(b.xMin, b.yMin, b.xMax, b.yMax, blur);
this.se_cover.endFill()
};
MovieClip.prototype.roundRect = function(x1, y1, x2, y2, r) {
r = Math.min(Math.abs(r), Math.min(Math.abs(x1-x2), Math.abs(y1-y2))/2);
var f = 0.707106781186548*r;
var a = 0.588186525863094*r;
var b = 0.00579432557070009*r;
var ux = Math.min(x1, x2);
var uy = Math.min(y1, y2);
var lx = Math.max(x1, x2);
var ly = Math.max(y1, y2);
this.moveTo(ux+r, uy);
var cx = lx-r;
var cy = uy+r;
this.lineTo(cx, uy);
this.curveTo(lx-a, uy+b, cx+f, cy-f);
this.curveTo(lx-b, uy+a, lx, uy+r);
cy = ly-r;
this.lineTo(lx, cy);
this.curveTo(lx-b, ly-a, cx+f, cy+f);
this.curveTo(lx-a, ly-b, lx-r, ly);
cx = ux+r;
this.lineTo(cx, ly);
this.curveTo(ux+a, ly-b, cx-f, cy+f);
this.curveTo(ux-b, ly-a, ux, ly-r);
cy = uy+r;
this.lineTo(ux, cy);
this.curveTo(ux+b, uy+a, cx-f, cy-f);
this.curveTo(ux+a, uy+b, ux+r, uy);
};
AS2边缘柔化类
最新推荐文章于 2021-03-16 15:49:09 发布