Flash AS3:如何在另一个矩形内调整矩形?

问题描述:

我有一个棘手的一个真实绊倒了,你能快速浏览一下它吧......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(); 

有效的一个550x300盒具有250x150缺口。

在我的功能之一,我需要调整内部“截取”框从250x150到150x100 - 但保留外包装盒完全相同。

通常当我调整正常的矩形我应该这样做:

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

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

感谢您的时间

ChainsawDR

+0

通过另一个论坛解决。需要清除图形并读取。 CanvasBorder.graphics.clear(); CanvasBorder.graphics.drawRect(100,100,550,300); CanvasBorder.graphics.drawRect((stage.stageWidth/2-Canvas.width/2),(stage.stageHeight/2- Canvas.height/2),150,100); CanvasBorder.graphics.endFill(); –

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

如果你想让这个矩形成为一个mas CanvasBorder k您可以这样做:

CanvasBorder.mask = rectangleMask;