Проблема заключается не в маскировке или EaselJS, а в том, как 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();
В большинстве браузеров это рисует вырезанную область. Safari нет.
Ваше решение использования собственных lineTo()
команд - хороший обходной путь.