2013-05-01 103 views
0

因此,我试图尽可能简化我的代码,基本上创建了两个阶段,两个可拖动图层,每个图层都带有一个图像。 (我试图创建一个的jsfiddle但似乎可拖动根本不工作都在那里)当你按下将一个图像(平移)放在另一个图像(平移)上时动力学中断

<html> 

<body> 
    <div id="view1" style="float:left;"></div> 
    <div style="float:left;">--</div> 
    <div id="view2" style="float:left;"></div> 
</body> 

<script type='text/javascript' src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v4.3.3.min.js"></script> 

<script> 

for (var i = 0; i < 2; i++) { 
    var divName = 'view' + (i + 1); 

    var stage = new Kinetic.Stage({ 
     container: divName, 
     width: 200, 
     height: 200 
    }); 

    var kineticLayer = new Kinetic.Layer(); 
    kineticLayer.setDraggable("draggable"); 
    stage.add(kineticLayer); 

    var image = new Image(); 
    image.onload = imageOnLoad; 
    image.kineticLayer=kineticLayer; 

    image.src = 'http://2.bp.blogspot.com/-lwBsEScRW_U/T-Hwz0-CVGI/AAAAAAAAKjY/2RC9pFcXRsE/s1600/Muppets.JPG'; 
} 


function imageOnLoad() { 
    this.kineticLayer.removeChildren(); 

    var kineticImage = new Kinetic.Image({ 
     image: this 
    }); 

    this.kineticLayer.add(kineticImage); 
    this.kineticLayer.draw(); 
} 

</script> 

</html> 

,并保存图像上,并在其周围平移确定移动它,但是当你移动光标在其他图像的顶部(同时按住),与错误的动能突破“遗漏的类型错误:无法读取属性‘X’的未定义”

编辑:的jsfiddle jsfiddle.net/LFeDg/ THX到EliteOctagon

编辑:这个'错误'只会发生在铬开发工具打开!

我需要平移操作来保持工作状态,只要光标保持在任意位置(我不需要在这种情况下拖放),我该如何解决这个问题?这是一个动力学错误?

谢谢!

+0

貌似错误。我认为kineticjs在舞台之外运作不佳。 – lavrton 2013-05-01 02:59:30

回答

0

这里是你发布的代码的的jsfiddle:http://jsfiddle.net/LFeDg/

你不必在开头所描述的内容。你有两个阶段,每个阶段都有一个图层和图像。

尝试编写没有循环结构和使用不同版本的kineticjs的代码。像:

stage1 = new Kinetic.Stage(); 
stage2 = new Kinetic.Stage(); 

+0

嗨,感谢您的回答和JSfiddle! 好吧,有趣的是,使用你的小提琴我意识到这个问题只发生在你打开chrome开发工具的时候,那么当我写在我的msg中时,虽然你可以恢复它,但它会中断。为什么会发生?这又是一个动力学错误还是我做错了什么? – kofifus 2013-05-02 00:18:28

+0

你也是对的,我有两个阶段没有一个。你可以请评论,如果这是正确的方式来实现我想要的东西(几个图像显示每个都有能力在它的图层中移动)? 谢谢! – kofifus 2013-05-02 00:20:19