サイトトップ

Director Flash 書籍 業務内容 プロフィール

HTML5テクニカルノート

SoundJSの次期バージョンにbasePathオプションとvolumeおよびpanプロパティが加わる

ID: FN1307001 Technique: HTML5 and JavaScript Library: SoundJS NEXT

先日、SoundJSの次期バージョン(NEXT)に、ふたつの追加がありました。ひとつは、読込むサウンドを登録するときパスの起点となるbasePathのオプションが加えられるようになりました。もうひとつは、SoundInstanceオブジェクトのボリュームとパンが、プロパティで扱えるようになったことです。かいつまんでご紹介します。


01 読込むサウンドを登録するときのbasePathオプション

読込むサウンドは、Sound.registerSound()またはSound.registerManifest()メソッドで登録します。これらのメソッドに新たな引数としてbasePathが加わります。この引数は、読込むファイルのパス(src)の前に、起点として加えられるパスの文字列です。PreloadJS 0.3.1のメソッドLoadQueue.loadFile()LoadQueue.loadManifest()に新たに備わった引数basePathに合わせて設けられました。

Sound.registerSound(src, id, data, preload, basePath)

Sound.registerManifest(manifest, basePath)

PreloadJS 0.3.1で渡すbasePathの引数には、守らなければならないことがふたつあります。これは、SoundJSの次期バージョンでも、おそらく同じになると考えられます。

  1. パスの起点(basePath)は、"/"で始めなければならない。ドメインやダブルドット(..)は使えない。
  2. パスの起点を与えたとき、ソースパス(src)はファイル名だけでなく少なくともひとつのディレクトリを前に加える。

02 SoundInstance.volumeおよびSoundInstance.panプロパティ

SoundInstanceクラスにプロパティとしてSoundInstance.volumeおよびSoundInstance.panが加わります[*1]。もっとも、現行のSoundJS 0.4.1でも、ボリュームはSoundInstance.getVolume()SoundInstance.setVolume()メソッド、パンはSoundInstance.getPan()SoundInstance.setPan()メソッドで扱えます。ですから、新たな機能というより、プロパティのかたちになって使いやすくなるということです。また、プロパティならTweenJSでトゥイーンするのも簡単です(「Tweening the volume of a sound」参照)。

気をつけなければならないのは、これらのプロパティはgetter/setterとして実装されていることです。そのため、Firefox 3.6以下やOpera 11.50以下ではサポートされません

[*1] 現行のSoundJS 0.4.1にも、SoundInstanceクラスにvolumeおよびpanというプロパティが備わっています。けれど、内部的に使われていて、ボリュームやパンを操作することはできません。



作成者: 野中文雄
作成日: 2013年7月5日


Copyright © 2001-2013 Fumio Nonaka.  All rights reserved.