Мне нужно нарисовать прямоугольник с двумя круглыми отверстиями внутри.Проблема в перехвате кругов.Я хочу, чтобы они объединились и вырезали из фона, но они, кажется, XORed:
Сначала я попробовал drawRect
и DrawCircle
:
graphics.beginFill(0, 0.5);
graphics.drawRect(0, 0, width, height);
graphics.drawCircle(width/2, height/2, 50);
graphics.drawCircle(width/2-30, height/2-30, 50);
graphics.endFill();
Затем я переключился на drawPath
, но тоже не повезло:
graphics.beginFill(0, 0.5);
var c1:Object = getCirclePath(width/2-30, height/2-30, 50);
var c2:Object = getCirclePath(width/2, height/2, 50);
graphics.drawPath(new <int>[
GraphicsPathCommand.MOVE_TO, GraphicsPathCommand.LINE_TO,
GraphicsPathCommand.LINE_TO, GraphicsPathCommand.LINE_TO,
GraphicsPathCommand.LINE_TO],
new <Number>[0, 0, myCanvas.width, 0, myCanvas.width, myCanvas.height,
0, myCanvas.height, 0, 0]);
myCanvas.graphics.drawPath(c1.commands, c1.data);
myCanvas.graphics.drawPath(c2.commands, c2.data);
graphics.endFill();
здесь getCirclePath
возвращает объект с точками для рисования многоугольника, который выглядит как круг.Также я пробовал разные комбинации GraphicsPathWinding
констант, но не повезло.
Какие-нибудь предложения, как нарисовать два пересекающихся круглых отверстия в графике?