HTML5テクニカルノート SoundJSでSoundInstanceオブジェクトを指定して再生する
説明CreateJS SuiteのSoundJSクラスでサウンドを再生するには、静的メソッドSoundJS.play()を呼出します。メソッドの戻り値は、そのサウンドを再生するSoundInstanceオブジェクトです。そこで、再生し終わったサウンドを改めて再生するには、SoundInstance.play()メソッドを用います。SoundJSクラスでサウンドはサウンドをまとめて扱い、ひとつひとつのサウンドを再生するのがSoundInstanceオブジェクトです。SoundInstance.play()メソッドの引数はいずれもオプションで、SoundInstance.play()メソッドの第2引数以降と同じです。 複数のSoundInstanceオブジェクトをまとめておき、好きなサウンドに切替えるといった場合に役立つのが、SoundJS.getInstanceById()メソッドです。メソッドに渡す引数は、SoundInstanceオブジェクトを識別する値です。この値は、SoundInstance.uniqueIdプロパティに備わります。SoundJS.play()メソッドの第1引数に渡すサウンドの識別子(id)とは違いますのでご注意ください。SoundJS.play()メソッドに同じサウンドの識別子を渡して呼出しても、返されるSoundInstanceオブジェクトは別です。 SoundInstance.uniqueIdプロパティの値は、SoundJS.play()メソッドを呼出したとき、戻り値のSoundInstanceオブジェクトに0から始まる連番の整数で与えられます。後から文字列などで任意の値に変えることもできます。複数のサウンドを読込んで再生するとき、それぞれのSoundInstance.uniqueIdプロパティの値を控えておけば、SoundJS.getInstanceById()メソッドでそれらのサウンドを自由に選んで再生できます。 確認されている問題SoundJS.getInstanceById()メソッドに識別子(SoundInstance.uniqueIdプロパティの値)を渡せば、識別子の定めるSoundInstanceオブジェクトが得られます。そのSoundInstanceオブジェクトの参照を保持している必要はありません。それは、SoundJS.play()メソッドの呼出しによりつくられた(戻り値の)SoundInstanceオブジェクトは、サウンドの再生が終わってもメモリに残ったまま消えないことを意味します[*1]。 ですから、同じサウンドを改めて再生するとき、SoundJS.play()メソッドを繰返し呼出すことは避けましょう。もう一度再生したいサウンドは、SoundJS.play()メソッドの戻り値からSoundInstanceオブジェクトの参照をとっておくか、そのSoundInstance.uniqueIdプロパティの値を控えておくべきです。そのうえで、その参照もしくはSoundJS.getInstanceById()メソッドの戻り値に対してSoundInstance.play()メソッドを呼出せばインスタンスが使い回せます。
作成者: 野中文雄 Copyright © 2001-2012 Fumio Nonaka. All rights reserved. |
||||||||||||||||||||||||||||||||||||||||