Action Script キー入力によるムービーの操作
サンプル
1度ムービーをクリックしてからカーソルキーで操作してください。
Movieの操作をクリック、ドラッグ等のマウス操作でなくキー入力で行いたい場合もあります。
ActionScriptではどのキーが押されたかの情報を利用してMovieClipオブジェクトを移動させることもできます。
ステージ上にMovieClipオブジェクトを配置してクリップアクションに以下のScriptを記述してください。
キーがいつ押されても感知できるようにイベントには「enterFrame」を使用してScriptを繰り返し実行します。
onClipEvent (enterFrame) {
if (Key.isDown(Key.LEFT)) {
_x += -10;
} else if (Key.isDown(Key.RIGHT)) {
_x += 10;
} else if (Key.isDown(Key.DOWN)) {
_y += 10;
} else if (Key.isDown(Key.UP)) {
_y += -10;
}
}
動作説明
onClipEvent (enterFrame) はこのMovieClipオブジェクトが表示されている限りハンドラ内のScriptを実行します。
if (Key.isDown(Key.LEFT)) はカーソルキー「←」が押されたときに次のScript
_x += -10 MovieClipオブジェクトの横座標(_x)を10ずつ左に移動させます。
else if (Key.isDown(Key.RIGHT)) はカーソルキー「→」が押されたときに次のScript
_x += 10 MovieClipオブジェクトの横座標(_x)を10ずつ右に移動させます。
else if (Key.isDown(Key.DOWN)) はカーソルキー「↓」が押されたときに次のScript
_y += 10 MovieClipオブジェクトの横座標(_y)を10ずつ下に移動させます。
else if (Key.isDown(Key.UP)) はカーソルキー「↑」が押されたときに次のScript
_y += -10 MovieClipオブジェクトの横座標(_y)を10ずつ上に移動させます。
イベントにはonClipEvent (keyDown)と言うキーが押されたときにハンドラ内のScriptを実行するものもありますがPCの「キーリピート」の影響をうけますので、この場合のイベントは「enterFrame」にしたほうが良いでしょう。
「enterFrame」なら「キーリピート」の有無を問わず常にキーが押されればKey.isDown()によってそのキーがどれなのか取得できます。つまりキーを押し続ければ移動を続けます。
|