波紋のエフェクトを作成することになりました。
先のエントリーでやった「水面のようなエフェクト」はその習作だったのですが、クライアントがやっぱり波紋でやりたいということだったので作成することに。
「DisplacementMapFilter」を利用することは変わらないので、いかに置き換えマップを作成するのかがカギなのですが、計算をなるべく省きたい。そこで、検索で見つけた鮭さんのブログのやり方を参考にして、円形グラデーションでマップを作成することにしました。
※枠内クリックで実行
水面のような揺らぎを与えるエフェクトを作成してみた。
※枠内クリックで実行
ソースはこんな感じ
先のエントリー でも使ったTweenMaxについて。その使い方
Flash標準のTweenとは順序が違うけど、だいたい概念は一緒なので、あてはめれば簡単です。
var tw:TweenMax = new TweenMax(Object, sec, { x:x, ease:EasingFunction ,runBackwards:Boolean});
基本的にはこんな感じ。第1引数はObject、第2引数secは秒数、第3引数はTweenの内容を指示するオブジェクトで、{}で囲って適宜示せばOK。上の例では、x座標をxまで動かす様になっています。y座標を動かすときは「y:y」を挿入します。x,y同時に動かすことも出来ます。
TweenMaxは基本的に、現在位置から指示した位置へ動かします。標準のTweenのようにStartValueは不要です。
指示オブジェクトの「runBackwards」は現在位置から指示位置へ動かすか、その逆かのブール値で、trueなら指示した位置から現在位置へ動きます。デフォルトはfalseです。
TweenMaxでもカスタムイージング関数が使えます。適宜関数を定義して「ease:EasingFunction」で指示するだけです。先のエントリーでも、砂の飛ばし方のy座標でカスタムイージング関数を使っています。このサイトでカスタムイージング関数を作成できるので、TweenMaxでバリエーションが足りないと思うひとはお試しください。
日本語キーボードから、プライベートに使っているキーボードにあわせて、英語キーボードに変更することにしました。
ただ繋ぎ換えただけだと、レイアウトは日本語のまま。
IMEの設定からUSレイアウトを追加しても、IME起動時には日本語レイアウトにもどってしまうし、レイアウトを切り替えなければならないのも不便。
そこでいろいろ調べてみると、レジストリをいじることで解決するみたい。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters\
の「LayerDriver JPN」と「OverrideKeyboardIdentifier」の値をそれぞれ、「KBD101.DLL」とPCAT_101KEY」に書き換えればよいみたいです。
ただコレだけではダメで、同じトコロにある「OverrideKeyboardSubtype」の値を「2」->「0」に変更すればOK♪
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Ketboard Layouts\E0010411
の「Layout File」の値を「kbdusx.dll」に書き換えるという情報もありますが、これをするとIMEを通常のキーバインドでは起動することが出来なくなってしまうので要注意です。