2007.10.29

Flash的数学講座3

Flash的数学講座3

~Flashで物理数学を勉強する。~
まずはonEnterFrameというイベントハンドラについて。
これはそのオブジェクトが画面に登場している限り発生する
イベントハンドラです。

イベントハンドラとはユーザーからのアクションに対して
自動的にメソッドを呼ぶ機能のことです。
例えばonPressイベントハンドラというものがあります。
これはオブジェクトを押すとonPressメソッドが呼ばれるのです。
ボタンを配置し、そのボタンにonPressメソッドを定義しておけば、
ボタンを押すとonPressメソッドが呼ばれます。

対して、onEnterFrameは画面上に存在するだけでメソッドを呼ぶイベントです。
なんだか恐ろしいイベントですよね。
自動で無限にメソッドを呼び続けることになるのですから。

FlashではそのonEnterFrameをバリバリ使います。
Flashアニメーションはこのイベントハンドラを制してこそ、
作り上げられるものなのです。

ではonEnterFrameを利用してアニメーションを作ってみましょう。
今回は古典力学をFlash上で実現してみます。
まずはこちらをダウンロードしてください。
ファイルをダウンロード
ファイルをダウンロード

2つのファイルを同じフォルダに保存し、Parabola.swfをダブルクリックしてください。
ボールが放物線を描いていたと思います。

これはonEnterFrameでメソッドを呼び続けていますが、
前回onEnterFrameを呼んでから、次のonEnterFrameが呼ばれるまでの時間をt1
としましょう。そしてボールには速度ベクトルVx, Vyを保持しておきます。
onEnterFrameメソッドの内部では現在のVx, Vyからt1秒後のVx, Vyを取得します。
また、Vx, Vyからボールの_x, _yプロパティも取得して、ボールの位置を反映しておきます。

これでonEnterFrameメソッドが呼ばれるたびにボールの位置が変化し、
動いているようにみえるでしょう。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
admin