ActionScriptを書いてみる | |||||||||||||
ActionScript(以下AS)、取り敢えず始めてみるとすると、まずはオブジェクトの移動からです。 例えばボールを置いて、そのボールを左右、上下へと動かします。 紹介してきたトゥイーンで簡単に出来る動作ですが、ASを初めていじるには最適でしょう。 それでは、とにもかくにもいじってみます(・ω・)ノ 新規作成からAS2.0を選択し、新しいファイルを作ります。そこに、移動するオブジェクトを用意してください。画像を用意したら、勿論シンボル化します。シンボル化するときに出てくる「シンボルに変換」ウィンドウでは、ムービークリップを選択して下さい。 ![]()
◆オブジェクトの位置 シンボル化を確認できたら、次にそのオブジェクトの位置を決めます。 FLASHのプロパティで設定した画面(デフォルトだと550*400pxくらい)の中に充分納まりきるようにサイズを縮小し(縮小の必要ない場合はそのままでOK)、オブジェクトの位置は左上の方にします。 ここでは、画像は(x,y)=(20,20)の場所に配置することにします。 ![]() ここまで出来たら、次はアクションパネルを開きます。アクションパネルは、ASを書き込むところです。画面上にない場合は、「ツールバー>ウィンドウ>アクション」(F9)で出します。
エラーもなくなったら、ツールバー>制御>ムービープレビューで見てみましょう。 このように動いていたら成功です。 ただ、このボールはどんどん右方向に動いていって、最終的には画面外に行ってしまいます。 それでは、このボールが画面の端まで到達したら、左へ折り返してくるようにするにはどうすれば良いかを考えてみることにしましょう。 |
|||||||||||||
反復移動をさせる | |||||||||||||
オブジェクトが端に到達したら折り返すようにするには、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文に下端、上端に到達した場合も追加します。 符号等に気をつけて書いてください(・ω・ ) これで完成です。 |