createjs优化画布重绘

问题描述:

据我所知,我有两种方法来控制画布重绘,所以当没有任何动画时它们不会简单地运行。createjs优化画布重绘

设置,检查条件的功能:

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

或者听一个Tween对象的“变化”事件和重绘在该事件的阶段:

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

他们都似乎乏味,但第二个似乎更容易。比另一个更高效吗?如果第二个是,是否有办法简单地扩展Tween类来总是这样做?为什么不会这样呢?

编辑:基本上我试图避免这样做:

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

因为我看过它的坏。所以,我有几个应用程序使用这个,现在我试图打开和关闭重绘剔刻过程中,它成为一个真正的混乱......由于交互性,一些功能正在测量剔 - >重绘关闭其他动画没有完成。这是一场噩梦。

如果你有一个补间继续进行,那么更新阶段时它的变化是有道理的,但如果你有不止一个,你会得到额外的更新是不必要的。

将两种方法合并,并将redrawOn设置为true进行补间更改可能有意义,然后在设置此值时更新打勾时的阶段。

收藏夹 据我所知,我有两种控制画布重绘的方法,所以当没有任何动画时它们不是简单地运行。

设置,检查条件的功能:

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

我会尽量使用你的建议。感谢您的帮助! –