« ActionScript 3.0 Language.. LiveDocs正式版 | メイン | 1.2 新しくなったイベント処理 »

1.1 フレームアクション

■フレームアクションの入力
フレームアクションは、シンボルのインスタンスを配置する場合と同じように、タイムラインのキーフレームに設定するスクリプトです。メインのタイムラインだけでなく、ムービークリップのタイムラインにも設定できます。使用するレイヤーはどのレイヤーでもよく、インスタンスやシェイプが配置されているレイヤーに書くこともできます。しかし、スクリプトだけの専用のレイヤーを追加して使うのがわかりやすく一般的な方法です。
アクションウィンドウを開きキーフレームを選択するとフレームアクションを入力編集できる状態になります。フレームアクションを設定したキーフレームにはaの文字が表示されます。

[:note:]
ActionScript 3.0では、オブジェクトアクション(ムービークリップアクションonClipEvent()とボタンアクションon())はサポートされなくなりました。

■スクリプトのテスト
次のスクリプトは、出力ウィンドウに「こんにちは」と表示するスクリプトです。これをフレーム1のフレームアクションに書きます。trace()はデバッグに用いるメソッドです。

例:
trace("こんにちは");
//出力:こんにちは

このスクリプトをテストするためには、制御>ムービープレビューを実行します。するとムービーのswfが作られてムービーが再生され、フレーム1に書いたフレームアクションが実行されます。結果として出力ウィンドウに「こんにちは」と表示されます。

trace()は、値をカンマで区切って複数の値を出力することもできます。

例:
trace("こんにちは", "Hello");
//出力:こんにちは Hello

■フレームアクションが実行されるタイミング
フレームアクションは、キーフレームが再生されたときに1度だけ実行されます。たとえば、フレーム5、フレーム10にフレームアクションがあるならば、フレーム5を再生したときにフレーム5のフレームアクションが実行され、フレーム10を再生したときにフレーム10のフレームアクションが実行されます。
ムービーがループ再生してキーフレームが繰り返し再生されたならば、そのたびにフレームアクションが実行されます。ただし、タイムラインにフレームが1フレームしかない場合はフレームアクションが繰り返し実行されることはありません。

■変数と関数の有効範囲
フレームアクションには、変数のほかメソッドと関数を定義することもできます。フレームアクションで定義した変数や関数は同一タイムライン内で有効です。たとえば、フレーム5、フレーム10のキーフレームにフレームアクションがあるとき、フレーム10で定義してある関数をフレーム5から利用できます。ただし、フレーム10で変数の宣言と同時に値が設定してあっても、フレーム10が再生されるまでは変数に値は入力されず本来の初期値のままです。 また、同一フレームアクション内に限らず、同じタイムライン上にあるフレームアクションにおいて、同じ名前の変数や関数を重複して定義することはできません。なお、関数内で定義している変数は関数内のローカル変数なのでほかには影響しません。

[:note:]
Flash 8では、フレームアクションが設定されているキーフレームが再生されるまで、定義されている変数や関数を利用できません。また、同一タイムライン上の同名の変数や関数は最後に実行されたステートメントが値を上書きします。

About

2007年4月18日 08:51に投稿されたエントリーのページです。

ひとつ前の投稿は「ActionScript 3.0 Language.. LiveDocs正式版」です。

次の投稿は「1.2 新しくなったイベント処理」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。