关闭

AS2边缘柔化类

680人阅读 评论(0) 收藏 举报

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3739次
    • 积分:30
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    最新评论