2013-08-24 47 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的标准吗?他们的标准有没有改变?谢谢 :) –