[英]As3: Draw overlapping rectangles to a sprite and apply alpha
我需要繪制一個獨立的矩形到一個精靈。 但是,如果我將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();
有沒有辦法組合/展平/合並我的精靈的矩形? 我想要無縫的aplha出現。
我懷疑圖形對象的部分數據不支持這種功能。
如果這兩個框是個人DisplayObjects
,你可以設置.blendMode
的的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
類的相關部分如下所示:
public class Box extends Shape
{
public function Box(width:Number = 100, height:Number = 100, color:uint = 0)
{
graphics.beginFill(color)
graphics.drawRect(0, 0, width, height);
graphics.endFill();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.