フレームを移動する

Home>Flash>動画のつくりかた>フレームを移動する

この情報はお役に立ちましたか?よろしければ皆様にもお知らせください。

  このエントリーをはてなブックマークに追加 mixiチェック  

ActionScript3.0でフレームを移動させる方法です。

まず、タイムラインを表示して、以下のように、複数のフレームにオブジェクトを設置します。

複数フレームにオブジェクトを配置

フレーム移動するメソッド

指定フレームに移動するには、以下のメソッドを使います。

gotoAndPlay 指定フレームまで移動して再生する
gotoAndStop 指定フレームまで移動して停止する

移動先のフレームの指定には、フレーム番号を指定する方法と、フレーム名を指定する方法があります。

フレーム番号を指定する

gotoAndPlay(2);

2フレーム目に移動します。

フレーム名を指定する

gotoAndPlay("FRAME");

「FRAME」という、フレームラベルを指定したフレームに移動します。

フレーム名によるフレーム間移動

まず、移動先に指定したいフレームを、タイムライン上で選択します。
次に、プロパティインスペクタに表示される[フレーム]欄に、フレームラベル名を半角英数字で入力します。
すると、タイムライン上に、設定したフレームラベル名が表示されます。

メソッドにフレーム名を指定するときは、ダブルクォーテーションでフレーム名を囲う必要があります。

ActionScriptの書き方

クリックしたら指定フレームに移動

stop();
stage.addEventListener( MouseEvent.CLICK, gotoFrame );

function gotoFrame( e:MouseEvent ):void
{
gotoAndPlay(10);
}

10フレーム目にキーフレームを挿入したタイムラインのときに、上記のコードを1フレーム目に書きます。

最初のstop();は、これ以降のフレームに進ませないメソッドです。
つまり、この場合は、1フレーム目で表示がとまります。

stage.addEventListener( MouseEvent.CLICK, gotoFrame );

の、「stage」とは、ステージのことを指します。
「addEventListener」は、イベントを発生させるときに指定します。
addEventListenerに与える引数(=カッコ内の値)には、

  1. 何をしたときに
  2. どうするか

を順番に指定します。

この場合、「MouseEvent」のうち、「CLICK」が発生した場合に、gotoFrameという関数を実行する、という指定をしています。

まとめると、「ステージ上を、クリックしたら、gotoFrame関数を実行する」という意味になります。

function gotoFrame( e:MouseEvent ):void
{
gotoAndPlay(10);
}

関数をつくるときは、「function」で宣言します。
function gotoFrameで、「gotoFrameという名前の関数」を宣言したことになります。
次のカッコには、関数が受け取る引数を指定します。
この場合、マウスをクリックしたときに呼び出される関数なので、マウスがクリックされたイベントを受け取る引数を指定します。以下のようになります。

( e:MouseEvent )

eというのは、gotoFrame関数内で使う変数名のことで、受け取ったマウスイベントが、eという変数に代入されます。

「:void」は、戻り値がないことを示しています。
関数には、戻り値を指定します。関数を呼び出した場合、呼び出し元には値を返す必要があります。
しかし、関数から特別戻す値がない場合には、:voidを指定して、特に戻す値がないことを示します。
※この戻り値は省略することもできます。

関数内のコードは、{ }間に入力します。

gotoAndPlay(10)は、10フレーム目にジャンプし、10フレーム目以降を再生する、という意味です。
移動先に、フレーム番号を指定する場合には、直接数字を指定します。

フレーム番号ではなく、フレーム名を指定するときは、gotoAndPlay("フレーム名")のように書きます。

引数で指定したフレーム名に移動

stop();
button1.addEventListener( MouseEvent.CLICK, gotoFrame( "FRAME1" ));
button2.addEventListener( MouseEvent.CLICK, gotoFrame( "FRAME2" ));
button3.addEventListener( MouseEvent.CLICK, gotoFrame( "FRAME3" ));

function gotoFrame( FRAME_NAME:String )
{
return function( e:Event )
{
gotoAndPlay( FRAME_NAME );
removeEventListener( MouseEvent.CLICK, gotoFrame );
}
}

このコードは、ステージ上に配置した、button1~3という名前のボタンをクリックすると、指定したフレームに移動する、というものです。

引数にフレーム名を与えることで、1つの関数で異なるフレームに移動することができるようにしています。

gotoFrame関数の引数に「FRAME_NAME:String」を指定しています。
これは、ストリング型(文字列形)のFRAME_NAMEという変数に、受け取ったフレーム名を代入することを意味します。

関連リンク

よく読まれている記事

UpDate:2011-2-18