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メソッドが呼ばれるたびにボールの位置が変化し、
動いているようにみえるでしょう。