このflash講座は,flashソフトを用いてflashアニメをスクリプトで制作し無料で公開したものです

FLASH講座 ーアクションスクリプトの実践的事始めー
基本編
(4)ムービークリップの開始・停止

 ムービークリップの開始・停止をユーザー(ムービー閲覧者)にゆだねる場合には動作用ボタンが使われます。

 今回は、ステージ上にボールが円形を描いて回っているムービーをボタン操作で回転を開始させたり、停止させたりする方法についてのflash講座です。 もちろん、ここで選んだムービーは一例であり、他のいろいろなムービーに共通して使える方法でもあるのです。
モーショントゥイーンで作成した回転体の場合
 ボールが回転するムービーを以下の要領で作成する
 (1)ステージに楕円ツールでボールを描き配置する(キャンバスサイズ:280*300、12fps)
 (2)ボールをシンボルに変換(ムービークリップ)インスタンスを「ball」とする
(3)インスタンスをダブルクリックして編集画面に入り、ballを選択してシンボルに変換する
(4)変形ツールで基準点を回転時にボールが描く円形の中心にドラッグ&ドロップで移動させる。
(5)FRAME 1 で右クリック「モーショントゥイーンの作成」
(6)FRAME 20 で「キーフレーム挿入」
(7)FRAME10あたりで矢印をクリックし、プロパティーインスペクタの「回転」で、
   時計回り、1回にチェックを入れる
(8)アクションパネルでFRAME 1にstop();(停止状態でムービーを開始させるため)
  FRAME 20に this.gotoAndPlay("1"); を記入(スムーズに回転させるため)

次いで、キャンバス下方に STARTとSTOPの2つのボタンを配置し、シンボルに変換する
ここでのボタンは、矩形ツールで角丸長方形を描き、静止テキストで文字をのせている
 角丸の書き方:矩形ツールアイコンをダブルクリックしてポイント指定する
//STARTボタンのスクリプト
  on(release) {
    _root.ball.play();
  }

//STOPボタンのスクリプト
  on(release) {
    _root.ball.stop();
  }

(注)on(release) はマウスがクリックされて放たれたときの意で、on(press) のクリックされたときよりも感触的にアクションのスタートには向いている。

 _root.ball.play();は、メインのタイムラインに置かれたballというインスタンスの再生を開始せよという意。
 _rootは絶対パスでターゲットを指定するときの元となる。
      
 なお、_root.ball.stop();はplay中のFRAMEでストップする。 初期状態(FRAME1)に戻して止めるときは、_root.ball.gotoAndStop("1"); とする。

アクションスクリプトで作成した回転体の場合

 アクションスクリプトのお勉強の曲線移動で示したように、アクションスクリプトでballを回転させることが出来る。 このアクションは、上の場合と同様なスクリプトでは停止させることが出来ない。 この場合は、モーショントゥイーンのお勉強の回転で示したように、flag(標識)を立ててplay、stopを判断させる必要がある。 上例と同様にキャンバスにボールと2つのボタンを配置し(キャンバスサイズ:280*300、36fps)、以下のようにスクリプトを付記する。
//ボールのスクリプト
 
 onClipEvent(load) {
    kaku=0; }
  onClipEvent(enterFrame) {
    
if (flag==1) {
    this._x=120+75*Math.cos(kaku/30);
    this._y=90+75*Math.sin(kaku/30);
    kaku+=3; }
  }

//STARTボタンに
  on(release) {
    
_root.ball.flag = 1;
  }

//STOPボタンに
  on(release) {
    
_root.ball.flag = 0;
  }

     
 なお、青いボタンは一つのボタンで、再生、停止を切り替える例として示した。
 この場合も、一見一つのボタンに見えるが、START、STOP二つのボタンを重ね合わせている(レイヤーを分けて)。
 それぞれのボタンのスクリプトを以下に示す。
 //STARTボタン;
    on(release) {
      _root.ball.flag = 1;
      mx.behaviors.DepthControl.sendBackward(this);      
// 一つ背面へ
    }

 //STOPボタン;
    on(release) {
      _root.ball.flag = 0;
      mx.behaviors.DepthControl.sendBackward(this);      
// 一つ背面へ
    }


 これは単に、ボタンを重ね合わせて、クリックされるたびに、背面に移動させて切り替えているだけである。
(追記)「上記アクションスクリプトで作成した回転体の場合」のスクリプトは、flagを立てずに以下のように記述してもよいことに気がついたので、記述する。
 ballには記述なし。
 STARTボタンに
  onClipEvent(load) {
   kaku=0; }
  on(release) {
   _root.onEnterFrame=function() {
    _root.ball._x=120+75*Math.cos(kaku/30);
    _root.ball._y=90+75*Math.sin(kaku/30);
    kaku+=3;
    }
  }
STOPボタンに
 on(release) {
  _root.onEnterFrame=function() {
   _root.ball._x+=0;
   _root.ball._y+=0;
  }
 }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 このサイトで使用しましたflashソフトはflash mx 2004年版(Flash Japan)- flash8 及び FlashCS3-2007年版です。
 flash講座(フラッシュ講座)は、Yoshioka氏(通称、ひげ親父)による制作です。 コツコツと作られたflash素材(flashアニメ、スクリプト)はユーザーの方により保存変更され動画flash(動画フラッシュ)や携帯flash(待受flash)として利用されて来ました。
 氏は、flashスクリプトについての学習を、パソコン塾講師活躍中に始められ、独立した今も続けておられます。 
  macromedia flashソフトは新しくadobe flash時代に入りましたので、これを機会にflash学習サイトを「flash講座1234」としてリニューアルいたしました。 引き続きご愛顧承りますよう、よろしくお願いいたします。                                                                           (by Hiraoka)
HOME   Flash講座総リスト           flash action script 基本編(5)