フレームを移動する
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に与える引数(=カッコ内の値)には、
- 何をしたときに
- どうするか
を順番に指定します。
この場合、「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という変数に、受け取ったフレーム名を代入することを意味します。
関連リンク
よく読まれている記事
- 右クリックメニューの表示が遅い【Information】
- 画像の一部にリンクを貼る(クリッカブルマップ【Dreamweaver】
- 一定時間でローテーションする広告【JavaScript】
- Dreamweaver【Dreamweaver】
- クリックした画像を拡大・縮小する【JavaScript】
UpDate:2011-2-18