アクション スクリプト 3 と CS5.5 を使用しています。キーボード入力に基づいて、キャラクターをさまざまな方法でアニメーション化したいと考えています。たとえば、右矢印キーを押すと実行アニメーションを開始し、左矢印キーを押すと同じアニメーションを逆にしたいとします。次に、入力がないときは立っているだけにして、上矢印キーを押したときにジャンプアニメーションを機能させたい. アクション スクリプト 3 でこれを行う最善の方法は何ですか?
2 に答える
フレームラベルを使用して、タイムライン上の再生ヘッドの動きをプログラムで制御します。
メディア
キャラクタークリップは次の構造になっている必要があります。
-タイムライン上の3つのレイヤー、それぞれに合計9つのキーフレームが3つあります
-フレームラベルレイヤー。各フレームにフレームラベルを付けます(「standing」、「walkingRight」、「walkingLeft」)。
--aストップレイヤー。各フレームを分離するため、フレーム間の移動はコードによってのみ制御されます。
-サブアニメーションレイヤー。各フレームに1つのアニメーションがあり、すべてのアニメーションがループしていて、停止することはありません。
---左のアニメーションクリップを歩く
---右のアニメーションクリップを歩く
---立っているアニメーションクリップ
明確にするために、これらのネストされたアニメーションはそれぞれ1フレームを占めますが、再生ヘッドをその上に移動すると、そのアニメーションは単独で再生されているように見え、コードが再生ヘッドを移動するまでその状態が続きます。
それをコーディングする
var character:MovieClip=new MyCharacterClass()
addChild(character);
character.gotoAndStop("standing")
stage.addEventListener(KeyboardEvent.KEY_UP,keyUp);
protected function keyUp(event:KeyEvent):void
{
switch (event.keyCode)
{
case Keyboard.LEFT:
character.gotoAndStop("walkingLeft")
break;
case Keyboard.RIGHT:
character.gotoAndStop("walkingRight")
break;
default:
character.gotoAndStop("standing")
break;
}
}
これは考えられる最も単純な例です。左矢印をクリックすると、アニメーションはキャラクターが左に歩いていることを示しています(1つの場所ではありますが、実際の移動コードを追加する必要があります)。右矢印をクリックすると、右に歩きます。他のキーを押すと、キャラクターが立ちます。
まず、KeyboardEvent を使用して、矢印キーが押されているかどうかを確認します。次に、イベント リスナー関数で正確に何を行うかは、アニメーションがどの程度正確に作成されたかによって異なります。たとえば、Flash で描画された MovieClip を再生している場合は、KeyboardEvent リスナーで MovieClip を切り替えます。