2013年5月11日にCreateJS Suiteのライブラリ群は、バグ修正版としてバージョンがそれぞれ0.01上がりました。本稿執筆時においては、GitHubからダウンロードすることになります。前のバージョンで筆者が調べた問題について、修正されているかどうかを確かめました。
EaselJS 0.6.1になりました。
EaselJS 0.6.0のドキュメントでダブルクリックを扱うイベントの名前が誤っていました。
[誤り]:
"dblClick"
[正しい]:
"dblclick"
GitHubからダウンロードしたEaselJSの「API Documentation for: 0.6.1」では、正しくすべて小文字に修正されています(図001)。
図001■「API Documentation for: 0.6.1」のDisplayObjectクラスに書かれたイベント
EaselJS0.6.0のMatrix2D.scale()
メソッドの演算に誤りがありました。デフォルト(単位行列)のMatrix2Dオブジェクトを90度回転すると、Matrex2D.scale()
メソッドで拡大も縮小もできなくなります。
たとえば、以下のコードはオブジェクト(myBitmap)を90度回転します。すると、Matrix2D.scale()
メソッドを呼出しても、Matrix2Dオブジェクトに変化が加わらなくなり、オブジェクトは拡大しません。
var matrix = new createjs.Matrix2D();
matrix.rotate(Math.PI / 2);
// [Matrix2D (a=6.123233995736766e-17 b=1 c=-1 d=6.123233995736766e-17 tx=0 ty=0)]
matrix.scale(2, 2); // no effect.
// [Matrix2D (a=1.2246467991473532e-16 b=1 c=-1 d=1.2246467991473532e-16 tx=0 ty=0)]
matrix.decompose(myBitmap);
図002■オブジェクトは90度回転しても拡大しない
→
EaselJS 0.6.1のMatrix2D.scale()
メソッドの実装が改められたため、オブジェクトを90度回転した後伸縮できるようになりました。ただし、Matrix2D.prependTransform()
など他のメソッドによる変換との整合性がとれていないようです。詳しくは、「EaselJSのMatrix2D.scale()メソッドを他の変換の後に呼出すと正しく伸縮されない」をお読みください。
TweenJS 0.4.1になりました。
SoundJS 0.4.1になりました。
SoundJSでサウンドを再生し終わると、SoundInstance.complete
イベントが起こります。そのイベントリスナーでSoundInstance.play()
メソッドを呼出しても、サウンドが再生されないという問題です。SoundJS 0.4.0では、つぎのコードはサウンドを一度再生するだけで、繰返されません。
createjs.Sound.addEventListener("loadComplete", loadHandler);
createjs.Sound.registerSound("sounds/test.mp3", "sound");
function loadHandler(eventObject) {
var instance = createjs.Sound.play("sound");
instance.addEventListener("complete", playAgain);
}
function playAgain(eventObject) {
var instance = eventObject.target;
instance.play();
}
SoundJS 0.4.1では、イベントでサウンドを初期化する順序が修正され、前掲コードでサウンドを繰返し再生できるようになりました。
PreloadJS 0.3.1になりました。
PreloadJSのLoadQueue.fileprogress
イベントで読込まれたパーセンテージは、イベントオブジェクトから調べられます。ところが、ドキュメンテーションのプロパティ名が誤っていました。「PreloadJS v0.3.0 API Documentation」のLoadQueue.fileprogress
イベントの項には、イベントオブジェクトのプロパティ名がつぎのように「percent」と記されています。
fileprogress
Defined in fileprogress:355
Available since 0.3.0
This event is fired when an an individual file progress changes.
Event Payload:...[中略]...
- percent
Number
The percentage that has been loaded. This will be a number between 0 and 1.
正しいプロパティ名は以下のとおり「progress」です。しかし、本稿執筆時にGitHubからダウンロードしたファイルは「preloadjs_docs-0.3.0.zip」となっており、0.3.1のドキュメンテーションに差替えられていないようです。
Event Payload:...[中略]...
- progress
Number
The percentage that has been loaded. This will be a number between 0 and 1.
一旦は新バージョン候補のファイルをアップロードして修正も済ませていた経緯がありますので、おそらくは単純にファイルを間違えたものと推測されます。
SoundJS 0.4.0のSoundクラスには、グローバルな静的メソッドとしてproxy()
が備わりました。ドキュメントに書かれていないものの、メソッドには第3引数以降が渡せます。ところが、PreloadJSライブラリを読込むと渡せなくなってしまいます。LoadQueueクラスにもproxy()
メソッドが、異なる実装で定められており、Soundクラスのproxy()
メソッドを上書きしてしまうからです
PreloadJS 0.3.1のLoadQueueクラスは、グローバルなproxy()
メソッドがあるかどうか確かめたうえで定めることにより上書きを避け、実装もSoundクラスと合わせました。また、古いPreloadJSクラスと互換のために残した静的メソッドproxy()
は、LoadQueueクラスに加えられています。