Flash AS3:如何在一个矩形内调整另一个矩形的大小



我有一个棘手的问题,它难倒了我,你能快速浏览一下吗?

我在另一个矩形内画一个矩形,像这样(我用它作为遮罩):

CanvasBorder.graphics.beginFill(0xf0ff00,0.1);  
CanvasBorder.graphics.drawRect(100,100,550, 300);
CanvasBorder.graphics.drawRect((stage.stageWidth/2-Canvas.width/2),(stage.stageHeight/2-Canvas.height/2),250, 150);
CanvasBorder.graphics.endFill();

它实际上是一个550 × 300的盒子,有一个250 × 150的切口。

在我的一个函数中,我需要将INNER 'cut-out'框的大小从250x150调整为150x100 -但保持OUTER框完全相同。

通常当我要调整一个普通矩形的大小时,我会这样做:

rectangle .width = 150;
rectangle .height = 100;

但是这个解决方案不起作用,我不知道如何引用形状的切出。我真的很纠结这个问题,在谷歌上找不到任何东西。

感谢您的宝贵时间

ChainsawDR

也许您可以像这样创建另一个SpriteShape:

// somewhere in your code declare the rectangleMask
var rectangleMas:Shape;

rectangleMask = new Shape();
// draw the rectangle the same way
// and add it to CanvasBorder (I assume that CanvasBorder is a DisplayObjectContainer)
CanvasBorder.addChild(rectangleMask);

然后你可以根据自己的需要调整大小:

rectangleMask.witdth = 150;
rectangleMask.height = 100;

如果你想让这个矩形成为CanvasBorder的蒙版,你可以这样做:

CanvasBorder.mask = rectangleMask;

最新更新