1

新しいフラッシュ ゲーム (AS3、CS5.5 を使用) を作成する際のいくつかの問題: キャラクター (帽子) を歩いたりジャンプさせたりしようとしていますが、同時に作成することはできません。 . さらに、自分のキャラクターに地面を認識させる方法がわかりません。そして最後に、これはここにあります:

「Scene 1, Layer 'hatt', Frame 1, Line 6 警告: 1090: 移行の問題: ActionScript 3.0 では、実行時に onKeyDown イベント ハンドラーが Flash Player によって自動的にトリガーされません。最初に、addEventListener を使用して、このハンドラーをイベントに登録する必要があります。 (「keyDown」、callback_handler)"

Plz は私を助けて、いくつかのヒントを教えてください plz... ありがとう。

コードは次のとおりです。

var grav:Number = 10;
var jumping:Boolean = false;
var jumpPow:Number = 0;
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
stage.addEventListener(Event.ENTER_FRAME, update);
function onKeyDown(evt:KeyboardEvent):void
{
  if (evt.keyCode == Keyboard.UP)
  {
    if (jumping != true)
    {
      jumpPow = -25;
      jumping = true;
    }
  }
}
function update(evt:Event):void
{
  if (jumping)
  {
    hatt.y +=  jumpPow;
    jumpPow +=  grav;
    if (hatt.y >= stage.stageHeight)
    {
     jumping = false;
     hatt.y = stage.stageHeight;
    }
  }
}

stage.addEventListener (KeyboardEvent.KEY_DOWN, myFunction) ;

function myFunction (event: KeyboardEvent){
  if(event.keyCode == Keyboard.LEFT) {
    hatt.x -= 5
  }
  if(event.keyCode == Keyboard.RIGHT) {
   hatt.x += 5
  }
}
4

1 に答える 1

2

次の行を削除します。

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);

関数 onKeyDown を削除します。

function onKeyDown(evt:KeyboardEvent):void
{
  if (evt.keyCode == Keyboard.UP)
  {
    if (jumping != true)
    {
      jumpPow = -25;
      jumping = true;
    }
  }
}

myFunction を次のように置き換えます。

function myFunction (event: KeyboardEvent)
{
  if(event.keyCode == Keyboard.LEFT)  
    hatt.x -= 5;

  if(event.keyCode == Keyboard.RIGHT) 
    hatt.x += 5;

  if(event.keyCode == Keyboard.UP && jumping != true)
  {
     jumpPow = -25;
     jumping = true;
  }
}
于 2012-08-21T00:24:04.647 に答える