下面是我的代码,我正在加载一个图像并绑定onclick事件。我想要的是保存这个阶段,并画一些其他的东西,即下一个屏幕后退按钮,后退按钮将加载前一个屏幕。但是当我使用json保存舞台并重新载入舞台时,舞台显示一切正常,但点击事件从图像中删除。任何人都可以提供帮助,我希望能够像之前的所有元素和事件一样拥有前一个屏幕。有没有另外一种方法,然后使用json可以做到这一点?在KineticJS中保存和重载阶段后事件绑定被删除
<!DOCTYPE HTML>
<html>
<head>
<style>
body {
margin: 0px;
padding: 0px;
}
</style>
</head>
<body>
<div id="container"></div>
<script src="js/kinetic-v4.3.3.min.js" type="text/javascript"></script>
<script type="text/javascript">
function loadImages(sources, callback){
var assetDir = 'http://localhost/kineticdemo/images/';
var images = {};
var loadedImages = 0;
var numImages = 0;
for(var src in sources) {
numImages++;
}
for(var src in sources){
images[src] = new Image();
images[src].onload = function(){
if(++loadedImages >= numImages){
callback(images);
}
};
images[src].src = assetDir + sources[src];
}
}
function initStage(images)
{
var stage = new Kinetic.Stage({
container: 'container',
width: 730,
height: 700
});
var outerLayer = new Kinetic.Layer();
var logo = new Kinetic.Image({
image:images.logo,
x:450,
y:75,
id:"logo"
});
logo.on('click',function(){
alert('aaa');
});
outerLayer.add(logo);
stage.add(outerLayer);
var json = stage.toJSON();
stage.destroy();
stage = Kinetic.Node.create(json, 'container');
stage.get('#logo').apply('setImage',images.logo);
stage.draw();
}
var sources = {
logo: 'logo.png'
};
loadImages(sources, initStage);
</script>
</body>
</html>