Flash AS3:如何在另一个Rect中调整Rect的大小?

时间:2011-08-27 13:13:27

标签: flash actionscript-3 actionscript flash-cs5

我有一个让我难过的棘手问题,请你快点看看吧......

我在另一个矩形中绘制一个矩形(我将它用作蒙版):

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();

实际上是一个带有250x150切口的550x300盒子。

在我的一个功能中,我需要将INNER'剪切'框从250x150调整为150x100 - 但保持OUTER框完全相同。

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

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

但是这个解决方案不起作用,我不知道如何引用形状的剪切。任何想法,我真的很难与这个,在谷歌上找不到任何东西。

感谢您的时间

ChainsawDR

1 个答案:

答案 0 :(得分:0)

也许你可以像这样创建另一个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;