particles⁠」⁠)⁠。今回は,画像をさらに2つ加えて,4つのロゴのパーティクルでアニメーションをつくりたい(図1⁠)⁠。アニメーションの動きもより細かく手直しする。補わなければならなくなったのは,2015年10月9日付でライブラリが改訂されたことだ。例によって,2015年10月9日付ライブラリに改めると,これまでのコードが動かなくなる。今回のお題についていうと,クラスBitmapDataとMethodRendererPoolがあっさりとなくなった。いえ,幸いなことに修正すべき箇所は多くない。DefaultRenderer()コンストラクタにMethodRendererPoolは渡さなくてよくなった。つぎに,Cast.bitmapData()がなくなり,とくに替わりのメソッドも使わない。LoaderEvent.assetsプロパティから取り出したオブジェクトがそのまま扱えるからだ。得られるオブジェクトはBitmapDataに替わって,新たなBitmapImage2Dになる(変数名はbitmapDataのまま変えない⁠)⁠。eventObject.assets[0];}ロゴの縁を抜く前回の結びにほのめかしていたアニメーションの気になるところを先に直そう。それは,2つのロゴが真ん中に重なったとき,うっすらと見える周りの縁だ(図2左⁠)⁠。コードにつぎのような手を加えて,Viewオブジェクトの背景色を白にするとはっきりわかる(図2右⁠)⁠。ロゴのパーティクルに四角い縁がある元画像のPNGファイルは,縁がアルファで抜いてある(図3⁠)⁠。ところが,それらのピクセルについてもパーティクルをつくり,カラーに黒が与えられてしまったのだ。そこで,パーティクルの情報をつくる関数(setParticlesData())に,以下のようにアルファが抜けていないか確かめるif条件を加えた(アルファ値は0とせず,少し余裕をもたせた⁠)⁠。アルファが抜けていたらパーティクルの情報を変数(colorValuesとcolorPoints)に加えないので,パーティクルがつくられないことになる。}}4つのビットマップからバーティクルをつくるでは,読み込むロゴの画像をあと2つ増やして,4つのビットマップからパーティクルをつくろう。Explorerのロゴで,awayjs-examplesの中のbin/assets/safari.pngとbin/assets/ie.pngだ(図4⁠)⁠。他の画像ファイルと同じassetsフォルダに納めておく。画像ファイルのURLは配列の変数(assetsURLs)に入れていたので,エレメントを新たに2つ加える。ファイルを読み込んだときのリスナー関数(onResourceComplete())にもURLの判定をswitch文に加え,取り出したBitmapImage2Dオブジェクト(bitmapData)は配列の変数(bitmapDatas)に納めた。}}そして,リスナー関数(onResourceComplete())は,すべてのBitmapImage2Dオブジェクトを取り出し終えたら,パーティクルのアニメーションをつくる処理(関数createParticles()とstartParticleAnimation()の呼出し)に移る。BitmapImage2Dオブジェクトが4つに増えたので,判定のための関数(allDataExists())を別に設けた。引数として渡した配列(array)にエレメントがすべて収められているかどうかを,for文により確かめてブール値で返す。そのために,BitmapImage2Dオブジェクトを納める配列(bitmapDatas)は,読み込むファイルの数(Array.lengthプロパティ)だけ長さを与えて初期化した。true;}あとは,パーティクルのアニメーションを初期化する関数(initColorParticle())で4つのロゴの行く先(endPoint)を,水平面(xz平面)の上で原点からそれぞれ一定値(size)移した。