強火で進め

このブログではプログラム関連の記事を中心に書いてます。

現在でも mozRequestAnimationFrame や webkitRequestAnimationFrame を使用する方法

現在、 mozRequestAnimationFrame や webkitRequestAnimationFrame などのメソッドがFirefoxChromeに実装されています。

これは最近追加されたアニメーション処理向けのメソッドです。存在は知っていたのですがまだ、最近のFirefoxChromeじゃないと使えないしなぁ。と自分はまだ様子見状態でした。

しかし、この前開催されたGoogle I/OHTML5関連のスライドを見ていたらこの様な記述を見かけました。

window.requestAnimFrame = (function(){
    return  window.requestAnimationFrame       ||
            window.webkitRequestAnimationFrame ||
            window.mozRequestAnimationFrame    ||
            window.oRequestAnimationFrame      ||
            window.msRequestAnimationFrame     ||
            function(/* function */ callback, /* DOMElement */ element){
              window.setTimeout(callback, 1000 / 60);
            };
})();

Google I/O 2011 - Super Browser 2 Turbo HD Remix : Intro to HTML5 Game Development by Seth Ladd
http://io-2011-html5-games-hr.appspot.com/#32

あれっ?OperaもrequestAnimationFrame対応したの?と思いOperaでテストした所、まだ未対応。うーん、そうですよね。そんな話聞いて無いし……。

しかし、この記述ならもし、Operaがこれから対応した場合には自動的に使用される様になるし、未対応な現状でもsetTimeoutで処理が行われるので大きな問題無いですね。

ここは良いテクニック。これから自分も使って行こうと思います。

関連情報

詳しい説明がされてます。お勧め!!

requestAnimationFrame < よーしおまえらー、アニメーションにsetInterval使うなよー - くろまほうさいきょうでんせつ
http://d.hatena.ne.jp/calpo/20110523/p1

requestAnimationFrame - MDC Docs
https://developer.mozilla.org/en/DOM/window.mozRequestAnimationFrame