2016-09-28 18 views
0

私が理解しているように、キャンバスの再描画を制御する2つのメソッドがあり、アニメーション化していないときには常に実行されているわけではありません。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(); 
}); 

彼らの両方の状態をチェックする機能を設定する

退屈なように見えますが、2番目の方が簡単です。他のものよりも演奏者は演奏者ですか? 2番目の場合は、単純にTweenクラスを継承する方法がありますか?なぜこれはすでにそうではないでしょうか?

編集:私はその悪いを読んでいるので

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

:基本的に私はこれを行うことを避けるためにしようとしています。だから、私はこれを使っていくつかのアプリケーションを持っているし、今私はダニの間に再描画をオンとオフしようとしていると本当の混乱になって...インタラクティブ性のため、いくつかの機能は、他のアニメーションは終了しません。その悪夢。

答えて

2

1つのトゥイーンがある場合は、変更時にステージを更新するのが理にかなっていますが、複数のステージがある場合は、必要のない追加のアップデートが行われます。

2つのアプローチを組み合わせて、トゥイーンの変更でredrawOntrueに設定し、この値が設定されている場合はティックでステージを更新してください。

お気に入り 私が理解しているように、キャンバスの再描画を制御するための2つの方法があります。つまり、何もアニメーション化していないときには常に実行されているわけではありません。条件をチェック機能の設定

:一般的なステージティッカーについて

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

私はあなたの提案を使用しようとします。ご協力ありがとうございました! –

関連する問題