ビットマップデータは使い方によっていろいろな見せ方ができて、便利ですよね。 今回はビットマップの色特徴をパーティクルの動きに反映させる事でパーティクルで絵を浮き上がらせる事をやってみたいと思います。

・今回作成してみたのはこちら(マウスダウンするとパーティクルが発生します。)
・元にしたビットマップはこちら
map
このビットマップを

vra _map:Bitmap = new Map(); var _bmp:BitmapData = new BitmapData(_map.width, _map.height); _bmp.draw(_map);

のような感じで保持しておきます。

今回は色が白に近い部分ほどパーティクルが引っかかるようにみせたかったので

//パーティクルの座標の色を取得する var color:uint = _bmp.getPixel(p.x, p.y); //取得色の白みの割合 var def:uint = color / 0xFFFFFF; //defが大きいほど小さい値を取得 var multi:uint = 1 - def * 0.98;

のように値を設定しました。
求めたmultiをパーティクルのx、y方向の移動量にかけてあげるとマップの白に近い部分ほど パーティクルがひっかかるようにみえると思います。

HTML5飯