スマフォ向けに描画が終わったらtickイベントをとめたい
イベント初期化
こんな感じでtickイベントが始まるとします。
var stage = new createjs.Stage($('canvas').get(0));
createjs.Ticker.addEventListener('tick',stage);
この状態ですとスペックの低いPCですとProfile>idleが10%ぐらいになり、
PCのファンが悲鳴をあげます。
イベント(描画)停止
createjs.Ticker.setPaused(true);
あるいは
createjs.Ticker.removeEventListener('tick');
とやることで描画更新(update layer tree)は止まります。
しかしこれでもidleは50%前後になってしまいます。
これはcreatejsの内部でsetTimeoutを呼び出し続けているためです。
イベントの完全停止
createjs.Ticker.reset();
//0.7.1だと以下のプロパティが初期化されずに再スタートできなくなる
//masterだと修正されているのでそのうちいらなくなるっぽい
createjs.Ticker._timerId = null;
createjs.Ticker._inited = false;
はじめmasterを見ていたのでなんで再初期化できないのかすっごく悩んだ。。
イベントの再初期化
createjs.Ticker.init();
createjs.Ticker.setFPS(15);
createjs.Ticker.addEventListener('tick',stage);
//Tweenも使っているのであれば以下も必要
//createjs.Ticker.addEventListener('tick',createjs.Tween);