2016-09-09 3 views
0

그래서 배열에 보관중인 easel.js 객체의 큰 스택이 있습니다.Tween.js의 트윈을 여러 객체로 묶기

각 개체에 트윈 세트를 연결하고 각 트윈 체인이 완료되면 트윈의 속성을 재설정하고 다시 시도하고 싶습니다. 이것은 내가 지금까지있어 무엇 :

function setObjectTween(tgt){ 
     createjs.Tween.get(tgt, { loop: false }) 
      .to({ x: randomOnStage("x", constraint[0],constraint[1]) }, randomInRange(100,1000), createjs.Ease.getPowOut(4)) 
      .to({ y: randomOnStage("y", constraint[0],constraint[1]) }, randomInRange(100,1000), createjs.Ease.getPowOut(4)) 
      .call(resetTween); 

    } 

    function resetTween(e){ 
     createjs.Tween.removeAllTweens(e.target); 
     setObjectTween(e.target); 
    } 

문제가 resetTween 동시에 모든 클립의 트윈을 중지 할 것이다. Tween을 사용하여 각 객체를 설정하면 다음과 같을 것이라고 생각했습니다.

for(i=0;i<objpool1.length;i++){setObjectTween(objpool[i]);} 

은 각 객체의 트윈을 독립적으로 유지합니다. 그것이 끝나면 리셋 함수를 호출하여 해당 객체에 대한 트윈을 제거한 다음 설정을 다시 실행하고 그 객체에 대해서만 다시 트윈을 새로운 임의의 값으로 다시 시작합니다.

리셋이 각 객체에 대해 독립적으로 작업하는 대신 배열의 마지막 객체에만 영향을 미칠 수있는 이유는 무엇입니까? (nb, 모든 배열 객체가 처음에는 작동하지만 재설정으로 모든 객체가 재설정 된 것처럼 보입니다. 이후 배열의 마지막 객체에서만 작업).

환호하는 :

E2A : 정렬. 문서 읽기에 실패했습니다. 아래 답변 덕분에! : o)

답변

1

removeAllTweens 메서드는 매개 변수를 사용하지 않습니다. 무슨 일이 일어나고 트윈마다 (resetTween에 대한 다른 트윈이 이어지는 것을 막음), 끝내는 첫 번째 트윈 만 다시 시작하게됩니다.

대신 removeTweens으로 변경하십시오. http://jsfiddle.net/6d9bckb4/

: 여기
function resetTween(e){ 
    createjs.Tween.removeTweens(e.target); 
    setObjectTween(e.target); 
} 

는 바이올린입니다