2016-09-28 6 views
0

캔버스 다시 그리기를 제어하는 ​​두 가지 방법이 있습니다. 즉, 아무 것도 애니메이션을 적용하지 않을 때 끊임없이 실행되지는 않습니다. createjs 캔버스 다시 그리기

은 상태 확인 기능 설정 :

createjs.Ticker.addEventListener("tick", tick); 
var redrawOn = false; 
function tick(event) { 
    if (redrawOn) { 
     stage.update(event); 
    } 
} 

또는를, 트윈 개체의 '변화'이벤트를 수신하고 해당 이벤트에 무대를 다시 그리기 :

var myTween = createjs.Tween.get(resetButton).to({'alpha': 1}, 500); 
myTween.on('change', function(){ 
    stage.update(); 
}); 

둘 지루한 것처럼 보이지만 두 번째 것은 더 쉬워 보인다. 하나가 다른 것보다 더 좋은가? 두 번째 경우에는 단순히 Tween 클래스를 확장하여이 작업을 항상 수행하는 방법이 있습니까? 왜 이것이 이미 그럴까요?

편집 : 기본적으로 나는이 일을 피하려고 노력 해요 :

createjs.Ticker.addEventListener("tick", stage); 

나는 그것의 나쁜 읽기 때문입니다. 그래서, 나는 이것을 사용하는 몇 가지 응용 프로그램이 있고 지금은 진드기와 그 혼란을 받고있는 동안 다시 그리기를 켜고 끄는 중입니다 ... 상호 작용 때문에 일부 기능은 tick -> redraw를 turing하는 동안 다른 애니메이션은 끝나지 않습니다. 그 악몽입니다.

답변

2

트위터가 하나있는 경우 변경 사항이 적용될 때 스테이지를 업데이트하는 것이 좋습니다. 그러나 둘 이상이있는 경우 필요없는 추가 업데이트로 끝납니다.

그것은 감각이 두 가지 방법을 결합 할 수 있도록하고, 트윈 변화에 redrawOntrue에 설정하고이 값을 설정하면 다음 틱에 무대를 업데이트 할 수 있습니다.

즐겨 찾기 내가 이해하는 것처럼, 캔버스 다시 그리기를 제어하는 ​​두 가지 방법이 있으므로 아무 것도 애니메이션으로 작업 할 때 단순히 계속 실행되는 것이 아닙니다. 그것은 나쁜 될 수

createjs.Ticker.addEventListener("tick", tick); 
var redrawOn = false; 
function tick(event) { 
    if (redrawOn) { 
     stage.update(event); 
    } 
    redrawOn = false; 
} 

var myTween = createjs.Tween.get(resetButton).to({'alpha': 1}, 500); 
myTween.on('change', function(){ 
    redrawOn = true; 
}); 

일반적인 단계 시세에 관해서 만, 본래 나쁘지 않다 :

는 상태를 확인하는 기능을 설정한다. 스테이지를 업데이트 할 때 일마다 앱이 많이 변경되거나 복잡 할 경우마다 똑딱이가됩니다. 스테이지 틱을 제거하는 것보다 애플리케이션을 최적화하는 더 좋은 방법이 있습니다. 예를 들어, 복잡한 내용 캐싱, SpriteSheets 사용, 그래픽 복잡성 감소 등.

희망이 있습니다.

+0

나는 당신의 제안을 사용하려고 노력할 것입니다. 도와 줘서 고마워! –