2012-01-15 54 views
0

我正在使用dojo 1.6並在IE8中發現繪製線條與表面的奇怪行爲。這條線在某些情況下會消失。 下面是樣本代碼(忽略的東西)我使用:用dojo繪製的線條不顯示在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」 到 「120 L249.5」(變化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文件)。

我不確定這是一個錯誤還是我犯了錯誤。 任何人都可以給我一些建議如何避免這樣的問題? 非常感謝。

+0

看起來像一個錯誤。下面是上面粘貼的代碼的小提琴:http://jsfiddle.net/froden/ApLyf/7/ IE似乎沒有渲染任何東西(當您在Developer Tools中查看DOM時沒有VML)。 將筆畫更改爲1時,它可以工作:http://jsfiddle.net/froden/ApLyf/ – Frode 2012-01-15 19:12:17

回答

0

IE/VML不支持分數座標---它們通常四捨五入。這解釋了你的#2和#3。這種轉換爲整數是在應用任何轉換之前發生的,所以不能用放大來修復。

至於消失線---我之前看到這個問題,我不認爲它會很快或曾經固定的任何時間--- VML是由MS很久以前罐頭。嘗試調整座標,例如,將它們乘以1.5,2,10或其他數字,然後使用轉換將其縮放回適當的大小---它對我有幫助。