我正在使用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)
使用此类路径和笔划,线条无法显示。 但如果我对路径或笔画变量进行了多次更改,则该行显示良好。请参阅以下内容:
如果您想尝试一下,请在dojo-release-1.6.1-src\dojox\gfx\tests\test_setPath.html
中使用上述路径和笔划。 (下载dojo sdk文件)。
我不确定这是一个错误还是我做错了什么。 有人可以就如何避免这样的问题给我一些建议吗? 非常感谢。
答案 0 :(得分:0)
IE / VML不支持小数坐标---它们通常是四舍五入的。这解释了你的#2和#3。这种转换为整数发生在应用任何变换之前,因此无法用放大率进行修复。
至于消失的线 - 我以前看过这个问题,我认为它不会很快或永远固定下来 - 很久以前VML是由MS封装的。尝试调整坐标,例如,将它们乘以1.5,2,10或其他数字,然后使用转换将其缩小到适当的大小 - 它帮助了我。