AS2边缘柔化类

// 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);
};

阅读更多
文章标签: function
个人分类: 网站开发
想对作者说点什么? 我来说一句

HTML5/JavaScript 图像边缘羽化

2017年03月02日 1.36MB 下载

没有更多推荐了,返回首页

不良信息举报

AS2边缘柔化类

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭