Lesson5 ActionScript
第4回 ムービークリップのメソッド
「メソッド」は、オブジェクトに対して実行する命令を指す。ムービークリップのメソッドには、タイムラインをコントロールしたり、ムービークリップの重なり順を変更したり、ムービークリップをドラッグしたりと、さまざまなメソッドが用意されている。例題では、指定したフレームにジャンプして再生する「gotoAndStop」メソッドを使って、メニューボタンをクリックすると写真が入れ替わるフォトギャラリーを作成しよう。
解説:北川貴清
※「FlashのABC」の本文中の解説で使用しているサンプルデータは、別ページでダウンロードができます。
■Summary:ムービークリップのメソッド ムービークリップの主なメソッドを紹介しよう。メソッドはターゲットパスを指定して、「オブジェクト.メソッド(引数);」のように記述する(オブジェク トが「this」だけのときは「this」を省略できない)。「_root」もムービークリップとして扱うことができる。 |
play()
現在のフレームからタイムラインを再生する
現在のフレームからタイムラインを再生する
stop()
現在のフレームでタイムラインを停止する
現在のフレームでタイムラインを停止する
gotoAndPlay()
指定されたフレームにジャンプして再生する
指定されたフレームにジャンプして再生する
gotoAndStop()
指定されたフレームにジャンプして停止する
指定されたフレームにジャンプして停止する
nextFrame()
次のフレームに進んで停止する
次のフレームに進んで停止する
prevFrame()
前のフレームに戻って停止する
前のフレームに戻って停止する
startDrag()
ムービークリップのドラッグを開始する
ムービークリップのドラッグを開始する
stopDrag()
ムービークリップのドラッグを終了する
ムービークリップのドラッグを終了する
swapDepths()
ムービークリップの重なり順を入れ替える
ムービークリップの重なり順を入れ替える
getDepth()
ムービークリップの深度(重なり順)を返す
ムービークリップの深度(重なり順)を返す
getNextHighestDepth()
ムービークリップ内の同一レイヤー上で最前面の深度を返す
ムービークリップ内の同一レイヤー上で最前面の深度を返す
hitTest()
ムービークリップが指定したムービークリップまたはxy座標と重なっているかを判定する
ムービークリップが指定したムービークリップまたはxy座標と重なっているかを判定する
attachMovie()
ライブラリ内のシンボルから新しいムービークリップのインスタンスを生成する
ライブラリ内のシンボルから新しいムービークリップのインスタンスを生成する
createEmptyMovieClip()
空のムービークリップのインスタンスを作成する
空のムービークリップのインスタンスを作成する
createTextField()
空のテキストフィールドを作成する
空のテキストフィールドを作成する
duplicateMovieClip()
ムービークリップのインスタンスを複製する
ムービークリップのインスタンスを複製する
removeMovieClip()
スクリプトで作成したムービークリップインスタンスを削除する
スクリプトで作成したムービークリップインスタンスを削除する
setMask()
ムービークリップを指定した別のムービークリップでマスクする
ムービークリップを指定した別のムービークリップでマスクする
getURL()
指定されたURLをブラウザに表示する
指定されたURLをブラウザに表示する
loadVariables()
外部からムービークリップに変数を読み込む
外部からムービークリップに変数を読み込む
loadMovie()
ムービークリップに外部ファイル(SWFファイル、JPEGファイル、GIFファイルまたはPNGファイル)を読み込む
ムービークリップに外部ファイル(SWFファイル、JPEGファイル、GIFファイルまたはPNGファイル)を読み込む
unloadMovie()
loadMovie()で読み込まれた内容を削除する
loadMovie()で読み込まれた内容を削除する
getBytesTotal()
ムービークリップのデータサイズを返す
ムービークリップのデータサイズを返す
getBytesLoaded()
ロードされたムービークリップのバイト数を返す
ロードされたムービークリップのバイト数を返す
メソッドを使ったアクション
「gotoAndPlay」メソッドと任意のフレームに名称をつけるフレームラベルを使って、フォトギャラリーを作成しよう。
【サンプル1】メニューボタンをクリックすると画像がフェードインする
1.PNG形式などで3つの画像を用意する。白の矩形を描画した「background」レイヤーの上に「image」レイヤーを作成する。[ファイル]→[読み込み]→[ステージに読み込み]で1つ目の画像を読み込み、グラフィックシンボル([名前:image01])に変換する【図1】。
【図1】ビットマップをシンボルに変換
2.[フレーム1~30]にモーショントゥイーンを設定。[フレーム1]のインスタンスを選択し、プロパティインスペクタで[カラー:アルファ]を[0%]に設定する。同様に残りの画像も、[フレーム31~60]、[フレーム31~90]に設定する【図2】。
【図2】3つの画像が順にフェードインするアニメーションを作成する
3.新規レイヤー「action」を作成する。[フレーム30]、[フレーム60]、[フレーム90]にキーフレームを挿入する。[アクション]パネルを開き、それぞれに「stop();」と記述する【図3】。ここまでを[制御]→[ムービープレビュー]で確認してみよう【図4】。
【図3】[アクション]パネルに「stop();」と記述する
■Point!
「stop」はメソッドのほかに、ターゲットパスを指定しないグローバル関数の「stop」が用意されている。メソッドの「stop」を使用する場合、記述は「this.stop()」となる。この場合、「this」は省略しない。意味は同じだ。
【図4】ムービーが起動するとアニメーションが再生し、[フレーム30]で停止する
4.メニューとなるボタンシンボル「image01_btn」~「image03_btn」を作成する。「シーン1」の「action」レイヤーの下に「btn」レイヤーを作成し、ステージに3つのボタンを配置する【図5】。
【図5】ロールオーバーで反転するボタンを作成し、ステージに配置する
5.ステージのボタンを1つずつ選択し、プロパティインスペクタでインスタンス名を入力する。左端から「image01_btn」、「image02_btn」、「image03_btn」と設定する【図6】。
【図6】各ボタンにインスタンス名を設定する
6.「action」レイヤーの上に「label」レイヤーを作成する。[フレーム1]を選択して、プロパティインスペクタで[フレームラベル]に「label_01」と入力する。[フレーム31]、[フレーム61]にキーフレームを挿入して、[フレームラベル]を「label_02」、「label_03」に設定しよう【図7】。
【図7】フレームラベルを設定する
7.「action」レイヤーの[フレーム1]を選択し、[アクション]パネルに、ボタンをクリックしたときにフレームラベルに移動する処理を「gotoAndPlay」メソッドを使って記述する【図8】。[制御]→[ムービープレビュー]で確認しよう。
【図8】 各ボタンをクリックしたときにフレームラベルにジャンプするActionScriptを記述
(1)
image01_btn.onRelease = function() {
_root.gotoAndPlay( "label_01" );
};
ボタン「image01_btn」をクリックしたとき、フレームラベル「label_01」にジャンプして再生する
image01_btn.onRelease = function() {
_root.gotoAndPlay( "label_01" );
};
ボタン「image01_btn」をクリックしたとき、フレームラベル「label_01」にジャンプして再生する
(2)
image02_btn.onRelease = function() {
_root.gotoAndPlay( "label_02" );
};
ボタン「image02_btn」をクリックしたとき、フレームラベル「label_02」にジャンプして再生する
image02_btn.onRelease = function() {
_root.gotoAndPlay( "label_02" );
};
ボタン「image02_btn」をクリックしたとき、フレームラベル「label_02」にジャンプして再生する
(3)
image03_btn.onRelease = function() {
_root.gotoAndPlay( "label_03" );
};
ボタン「image03_btn」をクリックしたとき、フレームラベル「label_03」にジャンプして再生する
image03_btn.onRelease = function() {
_root.gotoAndPlay( "label_03" );
};
ボタン「image03_btn」をクリックしたとき、フレームラベル「label_03」にジャンプして再生する
■Point!
「gotoAndPlay」メソッドは直接フレーム番号を使って「_root.gotoAndPlay(1);」のように記述することもできる。しかし、フレームラベルに置き換えておくと、画像の追加やアニメーションの修正があった場合に、その都度フレーム番号を書き換える必要がなくなり、汎用的に活用することができる。
サンプルをダウンロードする
次回につづく
[プロフィール] きたがわ・たかきよ●1972年8月生まれ。三重県出身。三重大学工学部卒業。大阪を拠点としてwebデザインを中心に活動中。著書に『Flash8デザインスクール for Win & Mac 』、『ネタ帳ビギナーズ FLASHテンプレート集 』。 http://www.f-l-a-v-o-r.com |