以下は私のコードです。画像を読み込んで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>