本日CreateJSの開発者Grant Skinner氏より「Possible API change. Feedback requested.」と題する記事がGoogle Groupsに投稿されました。これまでとの互換性を破るAPIの変更が検討されており、フィードバックが求められています。具体的には、BitmapAnimationクラスの名前をSpriteに改めるということです。その内容をご紹介します。
BitmapAnimationという名前は、もともとFlash開発経験者の誤解を避けるために用いられました。ActionScriptでのSpriteに当たるのは、Containerクラスだからです。けれど、ライブラリの内容が十分知られた今、誤解の心配は要らなくなったと感じています。
BitmapAnimationという名前はかなり長く、いくつか混乱を招いています。 よく受ける質問に、「BitmapAnimationオブジェクトを使い」、けれど「アニメーションはしていない」場合、SpriteSheetオブジェクトからどうやって単一フレームを表示したらよいかというものがあります。そして、混乱の末、その目的で備えたのではないSpriteSheetUtils.extractFrame()
メソッドを用いる人たちがいます。
Spriteという名前はSpriteSheetとのつながりを直に示します。つまり、SpriteSheetを表示するのがSpriteオブジェクトです。ドキュメントでも、Spriteはアルファベット順でSpriteSheetのすぐ上に記されます。しかも、名前は短いです。クラス名を添えた名前(たとえばEnemySprite)がつけやすいでしょう。
名前を変えると、互換性が損なわれます。けれど、つぎのように順を追って進めれば影響を小さくとどめられます。
今後、APIを変えることはできるだけ避けるつもりです。けれど、BitmapAnimationクラスについては、今の段階で見直し、問題を残さないようにしたいと考えます。
なお、BitmapAnimationとSpriteSheetクラスの使い方については「EaselJSでスプライトシートからアニメーションをつくる」をお読みください。