2013-08-24 98 views
3

工作,我已經開發了使用kinetic.js大約一年前,一個足夠複雜的畫布上的Web應用程序。我用kinetic.js3.10.4。版本我很驚訝我的應用程序不再適用於Google Chrome和Mozilla Firefox等最新的瀏覽器。例如,創建Text形狀時發生錯誤。下面是從谷歌瀏覽器的調試器堆棧跟蹤錯誤:與舊版本的KineticJS

Uncaught TypeError: Type error 
Kinetic.Shape.Kinetic.Node.extend.fill 
config.drawFunc 
Kinetic.Shape.Kinetic.Node.extend._draw 
Kinetic.Container.Kinetic.Node.extend._drawChildren 
Kinetic.Layer.Kinetic.Container.extend._draw 
Kinetic.Layer.Kinetic.Container.extend.draw 
loadMenu 
_background.onload 

我使用4.6.0版本嘗試,但也有我的舊代碼有些過時的功能和特性。 我只是想知道,我可以用我的當前3.10.4版本庫(與幾個輕鬆的修復),而不是更新的4.6.0版本。這仍然有可能嗎?感謝提前:)

+0

哪些過時的功能,你需要?我的經驗是,Kinetic經常增加功能並且經常移動方法,但很少消除功能。檢查Kinetic的更新日誌,看看你需要的函數是否有簡單的4.6對應:https://github.com/ericdrowell/KineticJS/wiki/Change-Log – markE

+0

我得到'.transitionTo'方法不再工作。 當前(3.10.4)'Text Shapes''.fill'屬性不起作用,導致谷歌瀏覽器中出現'未捕獲的TypeError'。 –

回答

1

是,視線被消除,通過吐溫有效KineticV4.5已被替換。

補間的編碼類似於舊的轉換。

因此變的任何重新編碼成吐溫應該是直線前進。

在ChromeV26變化爆發動能罷了 - 所以KineticV4.3及以上的填充將無法正常工作。

可能的選項:

  • 嘗試動力學4.4版本,其中填充固定和過渡仍然存在。
  • 將您的Transtions重新編碼爲補間並使用當前版本。
+0

謝謝,現在我意識到'KineticJS'使用的'.fill'屬性被谷歌瀏覽器早期版本打破了。它曾經是'.fill(context)',但現在只是'.fill()'沒有參數。但是,Google Chrome再也不支持這些代碼了?這不是W3C的標準嗎?他們的標準有沒有改變?謝謝 :) –