ActionScript 3.0のイベント処理
水曜日, 10月 1st, 2008AdobeのActionScript 3.0のイベント処理についてのページが分かりやすい。
イベントの伝達に、
- キャプチャ段階
- ターゲット段階
- バブリング段階
があるってもっと早く把握してれば良かった・・・
いくつか、役立つ?応用を思いついたので、うまくいったらまたメモしよう。
森重善隆のオンラインオープンめも
AdobeのActionScript 3.0のイベント処理についてのページが分かりやすい。
イベントの伝達に、
があるってもっと早く把握してれば良かった・・・
いくつか、役立つ?応用を思いついたので、うまくいったらまたメモしよう。
addChild()した後で、重なり順を制御する方法について、メモします。
最前面
container.setChildIndex(sprite, container.numChildren - 1);
最背面
container.setChildIndex(sprite, 0);
1つ全面へ
var index:int = container.getChildIndex(sprite);
if (index + 1 < container.numChildren) {
container.swapChildren(sprite, container.getChildAt(index + 1));
}
1つ背面へ
var index:int = container.getChildIndex(sprite);
if (index - 1 >= 0) {
container.swapChildren(sprite, container.getChildAt(index - 1));
}
この内容は、AdobeのFlashクイックスタート:ActionScript 3.0を使用したプログラミングにて、丁寧な解説があります。
Loggingライブラリとして、ThunderBoltを利用することにしました。
準備はsourceフォルダの org\osflash\thunderbolt\Logger.asをコピーして、インポートするだけです。
あとは、以下のように呼び出して利用できます。
Logger.debug("○○○", 1, 2, 3, ...);
Logger.info("○○○");
Logger.error("○○○");
Logger.warn("○○○");
また、hideプロパティーで出力のOn/Offができます。
Logger.hide = true;
Logger.info("これは出力されない。");
Logger.hide = false;
Flash Player Debugger Versionsを用いて、trace()結果をログファイルに出力することができます。
ログファイルに出力することで、別途traceのビューアーが利用できます。
やり方をよく忘れるので、Adobeの説明ページをメモ
デバッガ版の Flash Player の構成
mm.cfgは、以下のようにしてます。
ErrorReportingEnable=1 TraceOutputFileEnable=1
ログの保存先は、
C:¥Documents and Settings¥ユーザー名¥Application Data¥Macromedia¥Flash Player¥Logs
よく場所を忘れる。しかも、Adobeのページからたどり着くまでに、迷子になりがち。
そのため、ここにメモしとこ。
Debugger Versionも入手できるので、開発者には必須のサイトですね。
月の日数を求める場合、2月以外は固定のため、配列に月ごとの日数をもってもいいかな。ただし、2月は閏年の計算が必要なため、煩わしい。
手っ取り早いのはDateクラスに計算してもらうこと。
// ActionScript 3.0 のサンプル // 2008年 9月 の日数を求める new Date(2008, 8 + 1, 0).getDate();
翌月の「0日」が、今月の最終日であることから、月の日数が分かります。
Dateクラスでの月の表現は、0が1月、1が2月のため、「8」は9月を意味します。
「+1」は、翌月を意味します。
これで、未来でも過去でもすぐに特定月の日数を確認できます。
Eclipse を利用しているときに便利な
// TODO
// FIXME
が、Flex builderだと、タスクに反映されません。
そこで、Flex Builder 2用のPluginが登場にて、紹介されている TODO/FIXME extension for Flex Builder 2 をインストールしました。
なお、Flex Builder 2 となってますが、Flex Builder 3でも問題なく動きました。おかげで // TODOだらけですよ
Flash CS3 の外部エディタとして Flex Builderを利用しています。
環境構築としては、AS3S.ORG の Flash CS3の外部エディタとしてのFlex Builder 2 が参考になります。
なお、ドキュメントクラスとして作られる最初の.asは Sprite を継承していることに注意。Flash CS3側のタイムラインに stop(); などを記述しているとコンパイルエラーになります。そのときは、Sprite の継承から MovieClip の継承に変えれば大丈夫です。初めて触ったとき、エラーでキョトンとしてしまいました(笑
また、Flex Builder からムービープレビューを呼び出せるようにしておくと気持ちよく開発できます。AS3S.ORG のFlex BuilderからFlash CS3でムービープレビュー が参考になります。
なお、私はショートカットの割り当てを「Ctrl + Shift + Enter」にしたのですが、これをすると、「BLAZE Language」なるポップアップが表示されます。原因は、Shiftを押しながらFlashを呼び出しているためです。ショートカットの組み合わせに Shift は混ぜない方がよさそうです。結局「Ctrl + Alt + Enter」に変更しました。