kinetic-v3.8.2.js打破kinetic-v3.6.0.js和kinetic-image-plugin-v1.0.1.js,如何修复?

时间:2012-03-08 11:02:44

标签: javascript canvas kineticjs

我正在尝试制作一个动态画布,我可以动态添加来自其他来源的图片,我想在后台使用网格,所以我使用了kinetic v3.8.2中的kinetic.rect。 图像需要可以从动力学v.3.6.0中拖动,但是如果我在v3.8.2处于活动状态时设置了可拖动它会中断。 根据FireBug,“配置未定义”。 “img.kinetic.draggable不是一种方法”FireBug说道。

这是否有解决方法?

1 个答案:

答案 0 :(得分:0)

你能发一个小例吗? Kinetic API已发生变化。这是一张3.8.2的可拖动图片:

<!DOCTYPE html>
<html>
  <head>    

    <script type='text/javascript' src='js/kinetic/kinetic-v3.8.2.js'></script>    
    <script type='text/javascript'>        

      window.onload = function () {

          var stage = new Kinetic.Stage('container', 400, 300);
          var layer = new Kinetic.Layer({
              name: 'someLayer'
          });

          var logo = new Image();        
          logo.onload = function() {

              var myImage = new Kinetic.Image({
                    x: stage.width / 2 - (logo.width / 2)
                  , y: stage.height - logo.height - 5
                  , image: logo
                  , width: logo.width
                  , height: logo.height
              });          

              myImage.draggable(true)
              layer.add(myImage);
              layer.draw();
          }
          logo.src = "\./resources/images/ccs_logo.png";        

          stage.add(layer)        
      }

    </script>

  </head>

  <body onmousedown="return false;" bgcolor=#000000>        
    <div id="container">
    </div>
  </body>

</html>

最值得注意的是,最近为类实例化引入了配置。一个动态矩形用于定义如下:

var rect = new Kinetic.Rectangle(function () {

    //do drawing stuff here
});

但现在它是用config(对象文字)定义的:

var rect = new Kinetic.Rectangle({
    x: 0,
    y: 0,
    height: 20,
    width: 20
});

您可以在docs中看到示例;还可以查看更新后的KineticJS Tutorials