关于分层问题的奇怪的问题

时间:2013-03-12 06:10:56

标签: kineticjs

我遇到了分层问题,我无法弄清楚错误的位置。我首先将图像上载到特定的图像层,该图像层与我的舞台大小相同。我接下来在一个单独的圆形图层中创建一个圆圈,使用正确的imagelayer.add(图像),circlelayer.add(圆圈),然后是stage.add(imagelayer),stage.add(circlelayer)。这很好用。现在,如果我尝试添加mouseover和mouseout事件,比如使用alert(),我会在mouseb事件中的firebug中收到以下错误。有没有人遇到过类似的问题?感谢

TypeError:this.targetShape为null

this.targetShape._handleEvent('mouseleave',evt,shape);

这是我的代码片段:

function drawImage(imageObj) {
    var stage = new Kinetic.Stage({
    container: 'container',
    width: 721,
    height: 702 
});

    var imageLayer = new Kinetic.Layer();
    var tagLayer = new Kinetic.Layer();
        var floorImg = new Kinetic.Image({
          image: imageObj,
          x: 0,
          y: 0,
          width: stage.getWidth(),
          height: stage.getHeight()
        });
        imageLayer.add(floorImg);
        var tagImg = new Kinetic.Circle({
            x: 100,
            y: 100,
            radius: 70,
            fill: 'red',
            stroke: 'black',
            strokeWidth: 4
          });
        tagImg.on("mouseout touchend", function(){
        alert("HERE")

        }, false);
        tagLayer.add(tagImg);

        stage.add(imageLayer);
        stage.add(tagLayer);
    }

      var imageObj = new Image();
      imageObj.onload = function() {
        drawImage(this);
      };

imageObj.src = 'layout_good.png';

1 个答案:

答案 0 :(得分:0)

范围问题。

var stage var imgLayer var tagLayer移到drawImage函数之外,如果可能,将其设为全局。