この件、http://level0.kayac.com/2009/02/filereference.phpに詳しいです。
タイムライン上に配置したFileReferenceのインスタンスはすぐにGCの対象になったしまうのが原因のよう。ダウンロードをするためのクラスを作り、クラスのメンバとして配置すればうまく行きました。
どこかのサイトで見かけたのがきっかけで、「ムービー上で磨りガラスを表現しようとしたらどうしたらいいか?」というのをしばらく考えていました。
ちょうど波紋エフェクトなどを作成したときに、ひとコマずつBitmapDataにして加工するのをやったので「磨りガラスもこれでイケるな」と思い、早速作成してみました。
ソースはこんな感じ
値段の高さから購入を躊躇していたのですが、遅まきながら先日意を決して手に入れました。
内容は、AS3.0の基本をすこしと、簡単な数学(三角関数がメイン)から始まって初歩の物理とその応用を利用してAS3.0アニメーションを作成するものです。
いままでなんとなく作ってきたものが、物理を利用して理論的に組み立てて作成できるようになります。この点が応用を考えると非常に大きいと思います。(まぁなんとなくやっているのがイケナイのですが(^^; )
全体的に図とサンプルとなるスクリプトを示して、わかりやすく解説してくれていますので「物理とか数学はよくわからない」と言う人にもとっつきやすいと思います。
触れられている項目は、速度・加速度・摩擦・跳ね返りなどの初歩の物理からインバースキネマティクス、三次元まで豊富にあります。ビット演算や行列の演算にも触れているところが非常に参考になりました。
不満な点を上げるとすれば、跳ね返りなど物理の部分で「円」の場合でしか紹介されていないこと。長方形が斜めにぶつかったときにどういった計算になるのかということは教えてくれません。およそここから本格的な物理になってくるからだとは思いますが...。
すこし誤植が多いですが、理論的に再構築したい人にはオススメの1冊です。
ActionScript3.0 アニメーション(株式会社 ボーンデジタル:Keith Peters)7,350円
水面のような揺らぎを与えるエフェクトを作成してみた。
※枠内クリックで実行
ソースはこんな感じ
先のエントリー でも使った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を通常のキーバインドでは起動することが出来なくなってしまうので要注意です。
色々な事案の備忘録として、このブログに色々と記録していこうと思います。
Recent Comments