ActionScriptの基礎


ActionScriptを書いてみる

ActionScript(以下AS)、取り敢えず始めてみるとすると、まずはオブジェクトの移動からです。

例えばボールを置いて、そのボールを左右、上下へと動かします。
紹介してきたトゥイーンで簡単に出来る動作ですが、ASを初めていじるには最適でしょう。



それでは、とにもかくにもいじってみます(・ω・)ノ


新規作成からAS2.0を選択し、新しいファイルを作ります。そこに、移動するオブジェクトを用意してください。画像を用意したら、勿論シンボル化します。シンボル化するときに出てくる「シンボルに変換」ウィンドウでは、ムービークリップを選択して下さい。



シンボル化を忘れずに!

画像がシンボル化され、水色の枠で囲まれている事を確認してください。これを忘れちゃうとASを書けません!

◆オブジェクトの位置

シンボル化を確認できたら、次にそのオブジェクトの位置を決めます。
FLASHのプロパティで設定した画面(デフォルトだと550*400pxくらい)の中に充分納まりきるようにサイズを縮小し(縮小の必要ない場合はそのままでOK)、オブジェクトの位置は左上の方にします。

ここでは、画像は(x,y)=(20,20)の場所に配置することにします。


ここまで出来たら、次はアクションパネルを開きます。アクションパネルは、ASを書き込むところです。画面上にない場合は、「ツールバー>ウィンドウ>アクション」(F9)で出します。


◆重要!!

アクションパネルを開いたら、これからASを書き込む場所を選択します。今回はオブジェクト内に書き込みます。なので、シンボル化されているムービークリップオブジェクトが選択されている(外側が青い枠で囲まれている)状態であることを確認してください。
ここで間違えた場所にASを書き込んでしまうと、エラーが出たり思うように動かなかったりするので注意してください。



では、この状態でASを書き込んでいきます。



onClipEvent(enterFrame)は、フレームが再生されるたびに(時間の経過とともに)呼び出される命令文です。
this._xは、このオブジェクトのx座標を示しています。this._xを++、つまり1ずつ加算していくので、時間の経過とともにこのオブジェクトはx座標の正方向へ移動していくというプログラムです。


ここまで書き終わったら、1度「シンタックスチェック」をしましょう。


シンタックスチェック
初歩的なエラーをチェックすることができます。自分で定義した変数等はチェックできませんが、関数のスペルミスやカッコの書き忘れなどについて発見できます。他にも、見落としがちなエラーがあるので例を挙げておきます。

スペースが全角になっている
ASを書く場所を間違えている
例えばonClipEvent関数はムービークリップにしか書けないのに、ボタンやタイムライン上に書き込んでしまったいるなど
AS3.0にAS2.0のスクリプトを書いている
…などなど。

エラーもなくなったら、ツールバー>制御>ムービープレビューで見てみましょう。

このように動いていたら成功です。
ただ、このボールはどんどん右方向に動いていって、最終的には画面外に行ってしまいます。


それでは、このボールが画面の端まで到達したら、左へ折り返してくるようにするにはどうすれば良いかを考えてみることにしましょう。

反復移動をさせる
オブジェクトが端に到達したら折り返すようにするには、if文を使って以下のように書きます。


onClipEvent(load)は、初期値の設定をすることができます。ここで、1フレーム再生される毎にx座標にどれだけ動くかを設定します。ここでは動く速度を変数speedxとしています。

onClipEvent(enterFrame)内の今回のポイントはif文にあります。

this._x>320-this._width

では、x座標が320になったら…という条件です。ここではFLASHのステージ横幅が320pxなので、この値にしています。また、320からthis._width(このオブジェクトの横幅)を減算しているのは、オブジェクトの座標が左上から始まっているためです。

if文内では、speedx変数の正負を引っくり返してx座標の負の方向へオブジェクトが進むように設定します。8行目は、オブジェクトがどこかへ行ってしまわない為の保険です。

もう1つのif文は、同じようにxが負の方向へ進んで座標が0になった時に折り返すための命令文です。


ここまで出来たら、ムービープレビューを見てみましょう。



ちゃんと往復するよう動いていたら完成です(´▽`*)

サンプルダウンロード【lesson04ball1.fla

上下左右に動くオブジェクト



今度は、さっきのデータに追加して右→、下↓、左←、上↑とステージを回るような動きに出来るよう書き込んでいきましょう。


onClipEvent(load)



左右に動く速度をdとして値を決めます。今回はx、yの両方向へ移動するので、それぞれに速度を代入する変数を作成します(speedx,speedy)。


onClipEvent(enterFrame)内の変更点


さっき書いた命令文に、y座標の分を追加します。また、右端、左端に到達した後は移動方向がy方向へと変化することに留意していきます。


onClipEvent(enterFrame)内の追加点



更に、if文に下端、上端に到達した場合も追加します。
符号等に気をつけて書いてください(・ω・ )


これで完成です。


サンプルダウンロード【lesson04ball2.fla