귀하의 코드는 다음과 같습니다
$('#testBtn').click(function() {
var stageKnocker = new Kinetic.Stage({
container: "canvas-overlay",
width: 402,
height: 470
});
var layerKnocker = new Kinetic.Layer();
var imageObj = new Image();
imageObj.onload = function(){
var image = new Kinetic.Image({
x: 193,
y: 110,
image: imageObj,
width: 25,
height: 50,
draggable: true
});
layerKnocker.add(image);
stageKnocker.add(layerKnocker);
};
imageObj.src = "http://shop.windowrepairshop.co.uk/WebRoot/Store3/Shops/es115683_shop/49E6/ECF2/0C60/3750/10B1/50ED/8970/710D/V6GP_0020_gold_0020_plate_0020_vic_0020_urn_0020_LArge.jpg";
})
첫 번째 문제는 새로운 단계를 사용자가 버튼을 클릭 할 때마다 작성하는 것입니다. 그러지 마라. 단 하나의 무대 만 있으면된다.
사용자가 버튼을 클릭 할 때마다 새 레이어도 생성됩니다. 그러지 마. 당신은 하나의 레이어가 필요 & 필요합니다.
마지막으로, 사용자가 버튼을 클릭하여 레이어에 추가 할 때마다 새 Kinetic.Image가 생성됩니다. 괜찮아! 계속 그렇게해라. 하지만 당신은 또한 오래된 키네틱을 제거하고 싶습니다. 이미지. 그렇지 않으면 이미지를 바꾸지 않고 계속 추가 할 수 있습니다.
그래서 층에 Kinetic.Image를 추가하기 전에, 당신은 레이어에서 기존 이미지를 제거하려면 : layerKnocker.removeChildren()
레이어에 모든 것을 제거합니다.
완료되면 단일 스테이지, 단일 레이어 및 언제든지 단일 이미지를 갖게됩니다.
감사합니다. 다른 사람들이이 문제에 얽매여있어 솔루션을 제대로 볼 수 있다면 필자는 바이올린을 업데이트했습니다. – rpg3