使用drawRect的Createjs掩蔽在Safari中不起作用

使用drawRect的Createjs掩蔽在Safari中不起作用,safari,html5-canvas,createjs,Safari,Html5 Canvas,Createjs,我想从一幅画上剪下一些正方形。 问题是Createjs掩蔽drawRect在Safari中不起作用。 请在Safari中检查以下代码笔 https://codepen.io/anon/pen/moXXRN 它在除Safari之外的所有浏览器上都能工作通过使用lineTo和moveTo函数而不是drawRect e、 g 问题不在于遮罩或画架,而在于Safari如何处理用负坐标绘制的弯曲矩形。看起来大多数浏览器都将一维为负的矩形视为反向绘制,但Safari没有 超级计算机也有同样的问题: var

我想从一幅画上剪下一些正方形。 问题是
Createjs
掩蔽
drawRect
在Safari中不起作用。 请在Safari中检查以下代码笔

https://codepen.io/anon/pen/moXXRN

它在除Safari之外的所有浏览器上都能工作

通过使用
lineTo
moveTo
函数而不是
drawRect

e、 g


问题不在于遮罩或画架,而在于Safari如何处理用负坐标绘制的弯曲矩形。看起来大多数浏览器都将一维为负的矩形视为反向绘制,但Safari没有

超级计算机也有同样的问题:

var ctx = document.getElementById("canvas").getContext("2d");
ctx.beginPath();
ctx.rect(50,50,50,50);
ctx.rect(150, 150, 50, 50);
ctx.rect(300, 0, 350, -350);
ctx.fillStyle = "red";
ctx.fill();
在大多数浏览器中,这会绘制剪切区域。萨法里没有


您使用自己的
lineTo()
命令的解决方案是一个很好的解决方案。

已确认,但这可能是Safari/Canvas的错误。您正在使用负宽度矩形向后卷绕大矩形,这是进行剪切的创造性解决方案。我将确认Safari的画布是否支持这一点,并向您报告。你好,兰尼,是的,您是正确的。。非常感谢你的支持。
var ctx = document.getElementById("canvas").getContext("2d");
ctx.beginPath();
ctx.rect(50,50,50,50);
ctx.rect(150, 150, 50, 50);
ctx.rect(300, 0, 350, -350);
ctx.fillStyle = "red";
ctx.fill();