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

FLASH講座 ーアクションスクリプトの実践事始めー
基本編
(1)オブジェクトの移動(直線移動)

 アクションスクリプト事始の幕開けは、オブジェクトの移動です。

 ボールがある位置(座標)におかれ、そのボールが右へ、真下へ、左へ、真上へと移動し元の位置に帰ってくる単純な移動です。 もちろんこの動きは、スクリプトを使わずにモーショントゥイーンで作成することが出来ます。 しかしスクリプトでこの動きを作ることによって、スクリプトとはこんなものなんだと言うことを体験してもらうには丁度良い例になります。

ボールの初期設置
 ムービーが開始された時に、ボールを置く位置を指定することが出来る。 この指定をしなくても、オブジェクトが描かれた位置をプログラムが読み取るので特に指定しなくて良いことも多いが、この場合はスタート地点にボールを正確に戻すために設定が必要である。
 まずステージにボールを描き、シンボルに変換する。 このとき基準点を中心に置き、x、y座標が(50,50)近辺になるように描く。 次に、オブジェクト(インスタンス)をクリックして選択し、アクションパネルを開いてスクリプトペイン(記述部)に以下のスクリプトを書く。

  onClipEvent (Load) {
     this._x = 50;
     this._y = 50;
  }

このムービークリップが開始されたら、
   このオブジェクトのx座標を50とする(ステージ左上を基点とするピクセル値)
   このオブジェクトのy座標を50とする
 実施する内容は{ と } で前後を挟み、 一つ一つの設定は ;で締めくくる。

ボールの直線移動
 次に上の記述に続いてボールを右へ移動するために以下の記述をする。
  onClipEvent (enterFrame) {
    this._x = this._x + 10;
  }
フレームが再生されるたびに(時間の経過とともに)
   このオブジェクトのx座標を10ピクセルずつ増加させる。(右へ動く)
 this._x = this._x + 10; は、this._x += 10; と記述されることが多い。

 ただし、この記述だとボールはどんどん右へ移動し、ステージの外へ出て消えてしまう。 そこで、もしx座標が300pxを超えたら、もとの50に戻りなさいという記述を加えておくとステージの中で何度も行き来を繰り返すクリップとなる。 以下のスクリプトで実際のボールの動きを見てみよう。
  onClipEvent (enterFrame) {
   if (this._x > 300) { this._x = 50; }
   this._x += 10;
  }
 次に、ボールが右へ300px動いたところで、左に折り返し、元の位置で右に折り返す往復運動のクリップを作成する。
  onClipEvent (Load) {
   this._x = 50;
   this._y = 50;
   d=10;
  }
  onClipEvent (enterFrame) {
   this._x += d;
   if (this._x <50 || this._x>300) { d = -d; }
  }
 まず、ムービーが開始されたら、フレーム当たりの移動距離 d を10pxと定義しておく。
 if ( A || B ) { C; } は、もし、AもしくはBならば、Cを実行するというスクリプトで、ボールのx座標が、300を超えるか、50を下回ったら、dの符号を反対にする(移動方向を逆向きにする)という意。
 次に、ボールが右へ300px動いたところで、下向きに向きを代えて移動し、200px動いたところで左、さらに300px動いたところで上へ向きを代え、元の位置に戻ってくるクリップを作ってみよう。 全てのスクリプトを以下に示す。
  onClipEvent (load) {
    this._x = 50;
    this._y = 50;
  }
  onClipEvent (enterFrame) {
    if (this._x <300 && this._y == 50) {
     this._x += 10; }
    else if (this._x == 300 && this._y <200) {
     this._y += 10; }
    else if (this._y == 200 && this._x >50) {
     this._x -=10; }
    else if (this._x == 50 && this._y>50) {
     this._y -= 10; }
  }
 若干スクリプトの説明を加えておくと、
  if ( A ) { B; }      もし、Aならば、Bを実施する
  else if ( A ) { B; }  それ以外で、もしAならばBを実施する
  y == 50;        yが50に等しい。(y = 50 の場合は、yを50とする(置く)と言う意)
  &&           and と同じ。 ちなみに or は|| と記述する。 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 このサイトで使用しました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 基本編(2)