第4回 ムービークリップのメソッド | デザインってオモシロイ -MdN Design Interactive-
【サイトリニューアル!】新サイトはこちらMdNについて
イチから始めたい人、リトライしたい人のためのFlashのABC

Lesson5 ActionScript

第4回 ムービークリップのメソッド


「メソッド」は、オブジェクトに対して実行する命令を指す。ムービークリップのメソッドには、タイムラインをコントロールしたり、ムービークリップの重なり順を変更したり、ムービークリップをドラッグしたりと、さまざまなメソッドが用意されている。例題では、指定したフレームにジャンプして再生する「gotoAndStop」メソッドを使って、メニューボタンをクリックすると写真が入れ替わるフォトギャラリーを作成しよう。

解説:北川貴清
※「FlashのABC」の本文中の解説で使用しているサンプルデータは、別ページでダウンロードができます。


■Summary:ムービークリップのメソッド
ムービークリップの主なメソッドを紹介しよう。メソッドはターゲットパスを指定して、「オブジェクト.メソッド(引数);」のように記述する(オブジェク トが「this」だけのときは「this」を省略できない)。「_root」もムービークリップとして扱うことができる。


play()
現在のフレームからタイムラインを再生する

stop()
現在のフレームでタイムラインを停止する

gotoAndPlay()
指定されたフレームにジャンプして再生する

gotoAndStop()
指定されたフレームにジャンプして停止する

nextFrame()
次のフレームに進んで停止する

prevFrame()
前のフレームに戻って停止する

startDrag()
ムービークリップのドラッグを開始する

stopDrag()
ムービークリップのドラッグを終了する

swapDepths()
ムービークリップの重なり順を入れ替える

getDepth()
ムービークリップの深度(重なり順)を返す

getNextHighestDepth()
ムービークリップ内の同一レイヤー上で最前面の深度を返す

hitTest()
ムービークリップが指定したムービークリップまたはxy座標と重なっているかを判定する

attachMovie()
ライブラリ内のシンボルから新しいムービークリップのインスタンスを生成する

createEmptyMovieClip()
空のムービークリップのインスタンスを作成する

createTextField()
空のテキストフィールドを作成する

duplicateMovieClip()
ムービークリップのインスタンスを複製する

removeMovieClip()
スクリプトで作成したムービークリップインスタンスを削除する

setMask()
ムービークリップを指定した別のムービークリップでマスクする

getURL()
指定されたURLをブラウザに表示する

loadVariables()
外部からムービークリップに変数を読み込む

loadMovie()
ムービークリップに外部ファイル(SWFファイル、JPEGファイル、GIFファイルまたはPNGファイル)を読み込む

unloadMovie()
loadMovie()で読み込まれた内容を削除する

getBytesTotal()
ムービークリップのデータサイズを返す

getBytesLoaded()
ロードされたムービークリップのバイト数を返す

メソッドを使ったアクション


「gotoAndPlay」メソッドと任意のフレームに名称をつけるフレームラベルを使って、フォトギャラリーを作成しよう。


【サンプル1】メニューボタンをクリックすると画像がフェードインする

1.PNG形式などで3つの画像を用意する。白の矩形を描画した「background」レイヤーの上に「image」レイヤーを作成する。[ファイル]→[読み込み]→[ステージに読み込み]で1つ目の画像を読み込み、グラフィックシンボル([名前:image01])に変換する【図1】。

【図1】ビットマップをシンボルに変換
【図1】ビットマップをシンボルに変換

2.[フレーム1~30]にモーショントゥイーンを設定。[フレーム1]のインスタンスを選択し、プロパティインスペクタで[カラー:アルファ]を[0%]に設定する。同様に残りの画像も、[フレーム31~60]、[フレーム31~90]に設定する【図2】。

【図2】3つの画像が順にフェードインするアニメーションを作成する
【図2】3つの画像が順にフェードインするアニメーションを作成する

3.新規レイヤー「action」を作成する。[フレーム30]、[フレーム60]、[フレーム90]にキーフレームを挿入する。[アクション]パネルを開き、それぞれに「stop();」と記述する【図3】。ここまでを[制御]→[ムービープレビュー]で確認してみよう【図4】。

【図3】[アクション]パネルに「stop();」と記述する
【図3】[アクション]パネルに「stop();」と記述する

■Point!
「stop」はメソッドのほかに、ターゲットパスを指定しないグローバル関数の「stop」が用意されている。メソッドの「stop」を使用する場合、記述は「this.stop()」となる。この場合、「this」は省略しない。意味は同じだ。


【図4】ムービーが起動するとアニメーションが再生し、[フレーム30]で停止する

4.メニューとなるボタンシンボル「image01_btn」~「image03_btn」を作成する。「シーン1」の「action」レイヤーの下に「btn」レイヤーを作成し、ステージに3つのボタンを配置する【図5】。

【図5】ロールオーバーで反転するボタンを作成し、ステージに配置する
【図5】ロールオーバーで反転するボタンを作成し、ステージに配置する

5.ステージのボタンを1つずつ選択し、プロパティインスペクタでインスタンス名を入力する。左端から「image01_btn」、「image02_btn」、「image03_btn」と設定する【図6】。

【図6】各ボタンにインスタンス名を設定する
【図6】各ボタンにインスタンス名を設定する

6.「action」レイヤーの上に「label」レイヤーを作成する。[フレーム1]を選択して、プロパティインスペクタで[フレームラベル]に「label_01」と入力する。[フレーム31]、[フレーム61]にキーフレームを挿入して、[フレームラベル]を「label_02」、「label_03」に設定しよう【図7】。

【図7】フレームラベルを設定する
【図7】フレームラベルを設定する

7.「action」レイヤーの[フレーム1]を選択し、[アクション]パネルに、ボタンをクリックしたときにフレームラベルに移動する処理を「gotoAndPlay」メソッドを使って記述する【図8】。[制御]→[ムービープレビュー]で確認しよう。

【図8】各ボタンをクリックしたときにフレームラベルにジャンプするActionScriptを記述
【図8】 各ボタンをクリックしたときにフレームラベルにジャンプするActionScriptを記述

(1)
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」にジャンプして再生する

(3)
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
twitter facebook このエントリーをはてなブックマークに追加 RSS
【サイトリニューアル!】新サイトはこちらMdNについて

この連載のすべての記事

アクセスランキング

8.30-9.5

MdN BOOKS|デザインの本

Pick upコンテンツ

現在