初心者のためのFlash ActionScript講座
Flash ActionScript Helper
Home Menu

最終更新日: 2003年7月31日

ムービークリップのフレームの移動

フレーム移動用メソッドは4つ

ムービークリップ定義済みメソッドには、フレーム移動を行う4つのメソッドが用意されています。
現在のフレームを基準にして移動する MovieClip.prevFrameMovieClip.nextFrame、指定したフレームに移動する MovieClip.gotoAndPlayMovieClip.gotoAndStop の4つです。


前後のフレームに移動して停止

MovieClip.prevFrame と MovieClip.nextFrame は、現在のフレームを基準として移動を行うメソッドです。
名前のとおり、MovieClip.prevFrameひとつ前のフレームに、MovieClip.nextFrame次のフレームに移動します。ともに移動後に再生ヘッドを停止します。

ターゲットパス.prevFrame();

ターゲットパス.nextFrame();

下のサンプルムービー1は5フレームからなり、各フレームにフレーム番号の静止テキストを配置しています。
[ prevFrame() ] ボタンでひとつ前のフレームに移動、[ nextFrame() ] ボタンで次のフレームに移動して停止します。2つのボタンは _root に配置しています。

 

[ prevFrame() ] ボタンのボタンアクション
  on (release) {
    this.prevFrame();
  }

[ nextFrame() ] ボタンのボタンアクション
  on (release) {
    this.nextFrame();
  }

サンプルムービー1
 

ソースファイル:nextprev1.zip(8.35 KB)


指定したフレームに移動して再生/停止

フレームを指定して移動するには、MovieClip.gotoAndPlay と MovieClip.gotoAndStop メソッドを使用します。
引数にはフレーム番号(数値)またはフレームラベル名(文字列)を指定します。
どういうわけか『ActionScript辞書』では、これらのメソッドの引数はフレーム番号のみとされていますが、フレームラベルでも問題なく機能します。むしろフレームの移動には、フレーム番号の使用を止め、フレームラベルを使用することをお勧めします。
フレーム番号を指定すると、ムービー製作時やデバッグ時のフレームの挿入・削除で目的のフレーム番号が変わり、そのたびに引数を指定し直さなければなりません。フレームラベルは変化しませんので、このような手間が発生しません。ですから、特別な理由がなければ、フレームラベルを使いましょう。引数には、変数を使用することもできます。
指定したフレームに移動後、MovieClip.gotoAndPlay再生MovieClip.gotoAndStop停止します。
どちらのメソッドも同名のアクションとは異なり、引数にシーンを指定することはできません。まちがえる人が多いようですので、気をつけましょう。

なお、現在のフレーム番号を格納したムービークリップ定義済みプロパティ MovieClip._currentframe とMovieClip.gotoAndStop メソッドを使用して、MovieClip.gotoAndStop( this._currentframe - 1)、MovieClip.gotoAndStop( this._currentframe + 1) と記述することによって、MovieClip.prevFrame、MovieClip.nextFrameと同じ処理を実現できます。

ターゲットパス.gotoAndPlay(フレーム番号またはラベル名);

ターゲットパス.gotoAndStop(フレーム番号またはラベル名);

下のサンプルムービー2はMovieClip.gotoAndPlay用、サンプルムービー3は MovieClip.gotoAndStop用のサンプルムービーです。5フレームからなり、各フレームにフレーム番号の静止テキストを配置しています。テキスト入力(変数名:frame)やボタンも_root に配置しています。
[ ( 3 ) ] ボタンはフレーム番号(3)、[ ( "start" ) ] ボタンはフレームラベル("start")、[ ( frame) ] ボタンは変数(frame)を指定した例です。ボタンをクリックすると、指定のフレームに移動します。[ ( frame) ] ボタンをクリックする場合は、先に変数frameに値を代入しておく必要があります。右上の入力欄(変数名:frame)に、1〜5または「start」と入力してください。
サンプルムービー2は移動後に再生、サンプルムービー3は移動後に停止します。

サンプルムービー2

ソースファイル:gotoandplay1.zip(9.17 KB)

 

1フレームのフレームアクション
  this.stop();

[ ( 3 ) ] ボタンのボタンアクション
  on (release) {
    this.gotoAndPlay( 3 );
  }

[ ( "start" ) ] ボタンのボタンアクション
  on (release) {
    this.gotoAndPlay( "start" );
  }

[ ( frame) ] ボタンのボタンアクション
  on (release) {
    this.gotoAndPlay( frame );
  }


サンプルムービー3

ソースファイル:gotoandstop1.zip(9.18 KB)

 

1フレームのフレームアクション
  this.stop();

[ ( 3 ) ] ボタンのボタンアクション
  on (release) {
    this.gotoAndStop( 3 );
  }

[ ( "start" ) ] ボタンのボタンアクション
  on (release) {
    this.gotoAndStop( "start" );
  }

[ ( frame) ] ボタンのボタンアクション
  on (release) {
    this.gotoAndStop( frame );
  }




・関連項目

フレーム移動用メソッド使用時の注意点
フレームラベル

(C)2000-2004 Ginga Baba. All rights reserved. お問い合わせ先:ginga@nifty.com
ページTOPへ
Home Menu