lufy's legend

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6755|回复: 1
打印 上一主题 下一主题

LSprite中mask遮罩后sprite的宽高如何处理

[复制链接]

2

主题

0

好友

16

积分

士兵

Rank: 1

跳转到指定楼层
楼主
发表于 2015-8-1 21:19:08 |只看该作者 |倒序浏览
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;
}


回复

使用道具 举报

37

主题

8

好友

9313

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

沙发
发表于 2015-8-2 08:03:19 |只看该作者
一直没太注意这里,下个版本会进行适当的修正
目前的话,给你提供一下解决思路,我没试,不保证一定能解决
获取高度和宽度的时候,你试试getWidth(true),getHeight(true)
导出的时候,你试一下先把带mask的对象draw到一个LBitmapData上,然后再导出试试看效果怎么样
不回答与技术和引擎不相关的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

防止垃圾广告,请填写任意字符

Archiver|lufy's legend

GMT+8, 2024-5-9 06:17 , Processed in 0.047607 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部