As3:将重叠的矩形绘制为精灵并应用alpha

时间:2015-05-07 12:25:20

标签: actionscript-3 graphics sprite draw

我需要将 independentt 矩形绘制为精灵。但是,如果我将 alpha 应用于我的精灵(精灵将淡入和淡出),重叠区域将会显示:

        var spBox:Sprite = new Sprite();
        this.addChild(spBox);

        spBox.graphics.beginFill(0x123456)
        spBox.graphics.drawRect(100, 100, 50, 50);
        spBox.graphics.endFill();

        spBox.graphics.beginFill(0x123456)
        spBox.graphics.drawRect(125, 125, 50, 50);
        spBox.graphics.endFill();

Sprite rectangles with alpha applied

有没有办法 compine / flatten / merge 我的精灵的矩形?我想要一个无缝的aplha外观。

1 个答案:

答案 0 :(得分:1)

我怀疑图形对象不支持部分数据的这种功能。

如果两个方框都是单独的DisplayObjects,您可以将.blendMode的{​​{1}}设置为DisplayObjectContainer,从而得到所需的结果。下面是一些示例代码,用于将矩形的绘制重构为BlendMode.LAYER,类:

Box

var spBox:Sprite = new Sprite(); this.addChild(spBox); var a:Box = new Box(50, 50, 0x123456); a.x = a.y = 100; spBox.addChild(a); var b:Box = new Box(50, 50, 0x123456); b.x = b.y = 125; spBox.addChild(b); spBox.alpha = .5; spBox.blendMode = BlendMode.LAYER; 类的相关部分如下所示:

Box