Skip to main content
Participant
July 4, 2020
Question

ボタンでムービークリップを制御したいです。

  • July 4, 2020
  • 1 reply
  • 1008 views

コードスニペットで「このボタンを押すとこのムービークリップが再生される」という指示を作りたいのですが、どれもフレームに移動し、ムービークリップを再生と書いてあり、フレームを追加しても上手くいきません。どのようにすればボタンを押す→特定のムービークリップ(中にアニメーションが入っている)再生という形になるでしょうか?

※画面下の丸4つがボタンで、枠外のものがアニメーションが入ったムービークリップです。

This topic has been closed for replies.

1 reply

Fumio Nonaka
Community Expert
Community Expert
July 4, 2020

タイムラインのインスタンスの構成や配置、設定などがわかりませんと、的確なお応えは難しいです。以下の前提でご説明します。

 

  1. ボタンはボタンシンボルのインスタンスでムービークリップと同じ階層に置かれている。
  2. ボタンとムービークリップのインスタンス名は、それぞれ仮に「my_btn」と「my_mc」とする。
  3. ボタンを押してムービークリップを再生したいということは、ムービークリップシンボル内の最初のフレームにスクリプトthis.stop()が書かれている。

 

コードスニペットのスクリプトは、ボタンとムービークリップが置かれているタイムラインのフレームに書きます。

 

  1. ボタンのインスタンスを選択したうえで、コードスニペットから[HTML5 Canvas] > [イベントハンドラー] > [マウスクリックイベント]のコードを加えます。
  2. コードスニペットをつぎのように書き替えてください。

 

 

 

/* マウスクリックイベント
特定のシンボルインスタンス上でクリックすると、独自のカスタムコードを追加できる関数が実行されます。

手順 :
1. 以下の「// カスタムコードを開始」と記述された行の後ろに新しい行を挿入して、カスタムコードを追加します。
シンボルインスタンスをクリックすると、コードが実行されます。
*/

this.my_btn.addEventListener("click", fl_MouseClickHandler.bind(this));

function fl_MouseClickHandler()
{
	// カスタムコードを開始
	// このコード例では、出力パネルに "マウスクリック" という用語が表示されます。
	// alert("マウスクリック");  // 確認用なので削除
	this.my_mc.play();  // ムービークリップ「my_mc」を再生する
	// カスタムコードを終了
}