Линия, нарисованная с помощью dojo, не отображается в IE8 - PullRequest
0 голосов
/ 15 января 2012

Я использую Dojo 1.6 и нахожу странное поведение для рисования линии с поверхностью в IE8.Линия просто исчезает в некоторых ситуациях.Вот примеры кодов (что-то игнорировать), которые я использовал:

var surface = dojox.gfx.createSurface("test", 500, 400);
var path = " M235 216 L240.5 216 M240.5 216 S244.5 216 244.6 212 M244.6 212 " +
           "L244.5 124 M244.5  124 S244.5 120 248.5 120.1 M248.5 120.1 L249 120";
var stroke = { color: "#63E4FF", width: 3};
surface.createPath(path).setStroke(stroke)

При таком пути и штрихе линия не может отображаться.Но если я внес несколько изменений в переменную пути или обводки, линия покажет хорошо.Просьба просмотреть следующее:

  1. Изменить ширину на 1 в переменной storke
  2. или изменить последний «L249 120» на «L249.5 120» (изменить x) в переменной пути,но 249-249.4 не работает
  3. или изменяет последний "L249 120" на "L249 120.5" (изменение y) в переменной пути, но 120.1 - 120.4 не работает

Если вы хотите попробовать, используйте вышеприведенный путь и обведите в dojo-release-1.6.1-src\dojox\gfx\tests\test_setPath.html.(скачать файлы dojo sdk).

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

1 Ответ

0 голосов
/ 16 января 2012

IE / VML не поддерживает дробные координаты - они обычно округляются. Это объясняет ваши № 2 и № 3. Это преобразование в целые числа происходит до применения любого преобразования, поэтому его нельзя исправить с увеличением.

Что касается исчезающих строк - я видел эту проблему раньше, и я не думаю, что она будет исправлена ​​в ближайшее время или когда-либо --- VML уже давно создан MS. Попробуйте изменить координаты, например, умножьте их на 1,5, 2, 10 или другое число и используйте преобразование, чтобы уменьшить его до нужного размера - это помогло мне.

...