requestAnimationFrame を使用しているゲームを開発しています。これがそのコードです。
Game.prototype.startLoop = function (arg) {
var parent = this;
(function tick() {
parent.update();
window.animationID = webkitRequestAnimationFrame(tick);
}());
};
Game.prototype.stopLoop = function () {
console.log('cancel the game now');
window.webkitCancelRequestAnimationFrame(window.animationID);
};
問題は、というメッセージが表示cancel the game now
されることですが、animationFrame がキャンセルされないため、ゲームは引き続き実行されます。、、、およびブラウザでアニメーション フレームを要求するすべてのバージョンを試しました: webkitCancelAnimationFrame
、。どの組み合わせも機能しません。cancelAnimationFrame
webkitCancelRequestAnimationFrame
requestAnimationFrame
webkitRequestAnimationFrame
奇妙なことwindow.webkitCancelRequestAnimationFrame(window.animationID)
に、Webkit インスペクター コンソールで実行すると、ゲームが予期したとおりに停止します。このコードwindow.webkitCancelRequestAnimationFrame(window.animationID); console.log('button test')
を DOM ボタンの onclick 属性に追加しました。クリックするとゲームが停止しますが、JS を実行するとtheDOMButton.click()
何も起こりませんが、「ボタン テスト」というメッセージが表示されます。
ここに私のユーザーエージェントがあります:
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36
ここにjsfiddleがあります:
これに変更した後:http://pastebin.com/ewDXBT9C動作しますが、ループごとに変数をチェックする必要なくリクエストアニメーションが停止する必要があるため、奇妙だと思います