Flash AS3: как изменить размер Rect внутри другого Rect? - PullRequest
0 голосов
/ 27 августа 2011

У меня есть хитрая хитрость, не могли бы вы взглянуть на нее, пожалуйста ...

Я рисую прямоугольник внутри другого прямоугольника, как этот (я использую его в качестве маски):

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.

В рамках одной из моих функций мне нужно изменить размер «вырезанной» коробки INNER с 250x150 до 150x100, но сохранитьВнешний блок точно такой же.

Обычно, когда я изменяю размер нормального прямоугольника, я делаю это:

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

Но это решение не работает, и я не знаю, какдля ссылки на вырез формы.Любые идеи, пожалуйста, я действительно борюсь с этим и не могу найти что-либо в Google.

спасибо за ваше время

Бензопила DR

1 Ответ

0 голосов
/ 27 августа 2011

Может быть, вы можете создать ДРУГОЙ Sprite или Shape, например:

// 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;
...