2007/04/16
MovieClipに境界線をつけちゃうフィルタ
お初です。
Flash8から様々なフィルタ効果を扱えるようになりましたが、
フィルタを通じて境界線を設定する方法を紹介します。
派手じゃありませんが、地味に便利かなぁとか思ってます。
境界線の設定は、Photoshop ならば、
[レイヤースタイル] → [境界線] と簡単にできちゃうのですが、
Flash の場合は、[MCを選択] → [フィルタ] → [グロー] → [強度1000%] とするとそれっぽく見えます。
このとき、ぼかしの量をいじることで境界線の幅を設定できます。
で、この作業を ActionScript からいじれるようにクラス化してみました。
(オーサリング上の設定には限界がありました)
サンプルをどうぞ。
右側は Photoshop で作った画像です。
左側は ActionScript から境界線を設定しています(テキスト選択できます)。
さらに動的に色を変化させています。
比べると僅かな違いはありますが、実用には十分かなと思っています(ダメっすかね?)。
使う際はこんな感じです。
var bf:BorderFilter = new BorderFilter(0xFF0000, 2); // 赤色で2ピクセルの境界線
text_mc.filters = [bf]; // MCに設定
他のフィルタ同様に動的に設定を変えることもできます。
flash.filters.GlowFilter を継承したフィルタなので、
スーパークラスのプロパティもいじれます。
var bf:BorderFilter = new BorderFilter(0xFF0000, 2);
text_mc.filters = [bf];
text_mc.onEnterFrame = function(){
bf.width += 1; // 徐々に境界線の幅を大きく
// bf.color で色も変えれます
this.filters = [bf];
}
最後にこのクラスのソースです。
境界線の幅は GlowFilter のぼかし量と対応させていて、
また強度も幅に関連させています。
BorderFilter.as
なお、オーサリング上では強度の上限が1000%となっていますが、
これは AS だと GlowFilter.strength = 10 に相当しているようで、
256 * (1000/10) = 25600%まで設定できますね。
コメント一覧