効率よく作業するために

効率よくすすめるためのいくつかのポイント

直接ActionScriptとは関係ないのですが、実際にFlashで作業する前に効率よくActionScriptを記述するためのいくつかのポイントを挙げてみますので、参考にしてください。

初歩的なミスをなくす

最も初歩的なミスとして、ActionScriptを組み込もうとしている場所と違う場所に記述してしまうことがあります。特にボタンやムービークリップに記述しようと思いながら、フレームに記述してしまうケースをよく目にします。

この初歩的なミスは、記述する前にある一点を確認するだけで対処できます。ActionScriptを記述するためのアクションパネルには、前述の3種類のいずれのActionScriptを記述しようとしているかが表示されています。

アクションパネルのActionScriptの種類と、自分が組み込もうとしているActionScriptの種類が一致しているか、この一点だけを確認すれば良いのです。

フレームアクションの場合
ボタンアクションの場合
ムービークリップアクションの場合

ActionScript用のレイヤーを用意

フレームアクションを記述する場合は、専用のレイヤーを用意し、そのレイヤーのみに記述するようにすることをおすすめします。そうすることで、書いてある場所を特定し易い・他のレイヤーと干渉し合わないといったメリットがあります。

一般的には、"actions" "action" "action&labels"みたいな名前が多いようです。またActionScript用のレイヤーは一番上に配置しておきましょう。

フレームラベルの使用

ActionScriptでフレームの移動を行うような場合は、フレームラベルで指定するようにしましょう。またフレームラベルをつけておくと各フレームの内容を把握できるというメリットもあります。


フレームラベルは、キーフレームを選んでプロパティパネルで指定する

フレームラベル命名の注意点

  • 一つのタイムライン内で、同じ名前はつけられない
  • ラベル名に使用できる文字は、半角英数とアンダーバーのみ
  • ラベル名の最初の文字に数字はつけられない

インスタンス名の命名

ActionScriptのターゲットとなるインスタンスには必ずインスタンス名が必要です。

インスタンス名は、ActionScriptを記述する前に先につけておきましょう。後述のターゲットパス指定の自動入力機能を使った時に、インスタンス名で表示されるので分かりやすいからです。


インスタンス名は、インスタンスを選んでプロパティパネルで指定する

インスタンス名の命名ルール

  • インスタンス名に使用できる文字は、半角英数とアンダーバーのみ
  • インスタンス名の最初の文字に数字はつけられない
  • ボタンには_btn ムービークリップには_mcの接尾辞をつける(推奨)

ターゲットパスの指定

ターゲットパスを指定する場合、インスタンス名をつけておけば、選択するだけで自動でパスを入力してくれます。この機能を利用するため、先にインスタンス名をつけておくことをおすすめします。


アクションパネルのターゲットパス指定アイコン

自動入力機能を最大限に利用する

入力ミスをなくすため、少しでもFlashの自動入力機能を利用することをおすすめします。

メソッドやプロパティには大文字小文字が交ざっているものも多く、一文字でも違えば正常に動作しないので、なるべく手入力はさけたいところです。

インスタンス名の接尾辞

インスタンス名に接尾辞をつけておくと、インスタンス名の後ろにピリオドを入力した時点で、メソッドとプロパティが一覧で表示されます。一覧の中から指定することで自動で入力されます。

デバッグのコツをつかむ

プログラム上達のコツは、バグを出さないようにすることではなく、効率よくデバッグ(バグの修復)のコツをつかむことです。

バグの種類

バグは2つに大別されます。一つは文法的なミス、もう一つは論理的なミスです。

コードチェック機能の利用

文法的なミスは、コードチェック機能を利用すれば、何行目辺りが原因かも教えてくれますので、ActionScriptを入力し終えたら、コードチェックを行います。


アクションパネルのコードチェック機能

プログラムが進む経路を確認する

論理的なミスの場合、文法ミスほど簡単に見つけることはできません。いろいろな原因が関係しているからです。

たとえば、さきほどの『ボタンAが押されたらムービークリップb_mcを再生する』という命令を書いたのに、正常に動作しないとします。この場合は下記のような原因が考えられます。

  1. ボタンAがボタンとして機能していない
  2. ボタンAからムービークリップb_mcへのパスが間違っている
  3. b_mcのインスタンス名がつけ間違っている

このようなバグの場合、ただソースを見つめるのではなく、プログラムが進む経路を考えて、どこまでプログラムが走っているのかを調べて、原因を特定します。

  1. ボタンが機能しているか?
  2. ボタンAからムービークリップb_mcを呼べているか?

traceアクションの利用

上記を確認するときに、traceアクションを覚えておくと便利です。

trace アクションは、指定された値を画面に出力するという命令です。指定する値は、数字や文字だけでなく、後に出てくる変数や、式やメソッドの実行結果を指定することもできます。

たとえばボタンAが機能しているのかを調べるためには、ボタンAに次のように記述します。

on(release) {
trace("ボタンA");
_root.b_mc.gotoAndPlay(5);
}

上記を記述したあと、ボタンAをクリックしたときに、画面に"ボタンA"と出れば、ボタンとして機能していること、そしてプログラムがここを通ったことが意味します。

ボタンが正常に機能していると分かったのであれば、ムービークリップb_mcのフレームにもtraceアクションを入れて、画面に表示されるかを確認します。

このようにtraceアクションを使って、プログラムの動作を確認して問題を直すようにすれば、効率よくデバッグを行えます。

メインタイムラインとムービークリップの使い分け

メインタイムラインに、モーショントゥイーンを入れて動きをつけると、メインタイムラインのフレームが長くなりムービー全体の管理が難しくなります。そのため、それぞれの動きはムービークリップ内でつくり、ムービークリップのタイムライン内にモーショントゥイーンを入れるようにします。

メインタイムラインに、各ムービークリップのインスタンスを配置するようにすれば、メインタイムラインを見ればムービー全体の動きが分かるようになります。

また場面が変わるところなどには、フレームラベルやフレームコメントをつけておけば、さらにムービー全体の動きを把握しやすくなります。本編のサンプルでも、このような方法で作成していきます。