Почему сложный путь отсечения HTML Canvas не работает в браузере Android? - PullRequest
2 голосов
/ 22 октября 2011

У меня есть детское веб-приложение для раскрашивания бабочек, которое использует обтравочный контур для установки границы области рисования.

Приложение отлично работает на браузерах настольных компьютеров, устройствах Opera Mobile и iOS, но браузер Android по умолчанию, по-видимому, обрабатывает область отсечения как пустую, предотвращая вступление в силу любых последующих действий холста.

Выможно найти исходный код здесь:

http://svn.apache.org/viewvc/incubator/wookie/trunk/widgets/butterfly/

Однако основные действия таковы:

context.beginPath();
(lots of context.bezierCurveTo statements to draw a butterfly shape)
context.closePath(); 
context.stroke();
context.fillStyle = "rgb(255,255,255)";
context.fill();  
context.clip(); 

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

Есть идеи?Это я или есть недокументированное ограничение в веб-обозрении Android об обтравочных контурах?

1 Ответ

0 голосов
/ 19 июня 2012

Это все еще не работает в браузере Android, но работает в Google Chrome для Android.

Вот тестовая страница, которую вы можете использовать, чтобы увидеть: http://jsfiddle.net/LEpA5/

Я подозреваю, что в ближайшем будущем обычный браузер для Android устареет в пользу Google Chrome. Я бы не стал задерживать дыхание на том, что из-за этого поправлюсь.

...