lufy's legend

标题: LSprite中mask遮罩后sprite的宽高如何处理 [打印本页]

作者: hukangbao    时间: 2015-8-1 21:19
标题: LSprite中mask遮罩后sprite的宽高如何处理
Lsprite用mask 遮罩之后sprite的宽高不是遮罩区域的宽度 而是原有的宽高,怎么处理。 mask遮罩后 导出的图片不是mask内的图 而有一大部分透明图。
下面方法我是根据获取的参数 来截裁取一个圆脸。
代码如下:rx:x移动像素 ry:y移动像素
var ele = {       
        name:"el_0",
        rx:-25,
        ry:-172,
        img:"./img/peop0.png",
        mwidth:200,
        scale:2.2
};
function ModelSprite(ele) {
        var self = this;
        base(self, LSprite, []);
        var tLSprite = new LSprite();
        ele.img = imglist[ele.name];
        var tLBitmap = new LBitmap(new LBitmapData(ele.img));

        tLBitmap.scaleX = (ele.mwidth / ele.img.width) * ele.scale;
        tLBitmap.scaleY = tLBitmap.scaleX;
        tLSprite.addChild(tLBitmap);
        var maskSprite = new LSprite();
        maskSprite.x = ele.mwidth / 2;
        maskSprite.y = ele.mwidth / 2;
        maskSprite.graphics.drawArc(1, "red", [-ele.rx, -ele.ry, ele.mwidth / 2, 0, 2 * Math.PI]);
        tLSprite.mask = maskSprite;
        self.addChild(tLSprite);
//        self.x = ele.rx;
//        self.y = ele.ry;
        return self;
}



作者: lufy    时间: 2015-8-2 08:03
一直没太注意这里,下个版本会进行适当的修正
目前的话,给你提供一下解决思路,我没试,不保证一定能解决
获取高度和宽度的时候,你试试getWidth(true),getHeight(true)
导出的时候,你试一下先把带mask的对象draw到一个LBitmapData上,然后再导出试试看效果怎么样




欢迎光临 lufy's legend (http://lufylegend.com/forum/) Powered by Discuz! X2.5