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()によってそのキーがどれなのか取得できます。つまりキーを押し続ければ移動を続けます。



(c)2004 Tsuruji Studio
Click here to visit our sponsor