내 KineticJS 애니메이션을 stop()하는 데 문제가 있습니다.하나의 레이어에 여러 개의 KineticJS 애니메이션을 포함 할 수 있습니까?
동일한 레이어에 3 개의 KineticJS 이미지 개체가 있고 각 KineticJS 이미지 개체에 KineticJS 애니메이션을 추가했습니다. 그러나 이미지 객체 중 하나만 애니메이션을 표시합니다. 또한 세 개의 모든 객체 (실제로 시각적으로 애니메이션을 적용하지 않는 객체 포함)의 애니메이션을 중지 (stop)하지 않으면 anim.stop()에 대한 응답으로 애니메이션이 중단되지 않습니다.
제 질문은 seprate 객체/이미지/모양에 여러 독립 애니메이션을 추가하고 각 애니메이션을 개별적으로 start()/stop() 할 수 있습니까? 또는 각 KineticJS 이미지 객체에 대해 개별 레이어를 만들어야합니까? 다음과 같이 (버전을 해킹) 간단히 말해서
, 내 코드는 다음과 같습니다stage = new Kinetic.Stage({container: "container", width: windowWidth, height: windowHeight});
layer = new Kinetic.Layer();
var kinObjArr = [];
for (var i=0; i < 3; i++) {
kinObjArr[i] = new Kinetic.Image({image: myHTMLImage});
kinObjArr[i].anim = new Kinetic.Animation({
func: function(frame) {
kinObjArr[i].setX(30 * Math.sin(frame.time * 2 * Math.PI/500) + 100);
},
node: layer
});
kinObjArr[i].anim.start();
kinObjArr[i].on('touchstart', function(){
this.anim.stop(); // <----- Doesn't stop
layer.draw();
});
} // for
stage.add(layer);
기본적으로 만 목록의 마지막 KineticJS 이미지가 애니메이션되고 그것은 단지 3 개 이미지가되었을 때 중지 할 수 있습니다 만진/클릭.