下面是我的代码,正在加载图像并将 onclick 事件绑定到它。我想要的是保存这个阶段并绘制其他内容,即带有后退按钮的下一个屏幕,后退按钮将加载上一个屏幕。但是当我使用 json 保存舞台并重新加载舞台时,舞台显示一切正常,但点击事件会从图像中删除。任何人都可以提供帮助,我希望能够拥有以前的屏幕,因为它包含所有元素及其事件。还有另一种方法可以使用json吗?
<!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>