任何使Kinetic.js支持IE8的方法



我现在的情况是,我需要一些复杂的代码来处理Kinetic.js和一个画布元素才能在IE8上工作。

官方称,Kinetic.js没有支持IE8的计划。

我尝试使用webshims lib,但Kinetic.js在以下代码上失败:

Kinetic.Canvas = function(width, height) {
    this.element = document.createElement('canvas');
    this.context = this.element.getContext('2d'); //<-- Error here
    // set dimensions
    this.element.width = width;
    this.element.height = height;
};

错误是"对象不支持属性或方法'getContext'"。这对我来说是有道理的,因为我不希望 IE8 文档创建的元素画布来实现 canvas 元素的方法,但如果已经创建了<canvas>元素,webshim 就会播放,您可以使用这些方法。但是,强制 Kinetic.js 使用单个画布元素会破坏其某些功能(因为它会动态创建画布对象)。

为了实现这一点,我有哪些选择?

简单的答案是"否"。

正如一位评论员所提到的,Google Chrome Frame是一个OK的替代品,它基本上需要将Chrome的渲染引擎安装为IE插件。

有一个excanvas项目,一开始听起来可能不错。这是在VML(SVG)中实现canvas的尝试,以便IE 6-8可以使用canvas。

Excanvas很糟糕。特别是对于任何动画,它不能做一些画布图像处理的东西。而且它已经将近 4 年没有更新了。我强烈建议不要使用它,但它供您考虑。

最新更新