AS3键盘移动错误

时间:2014-08-10 23:27:09

标签: actionscript-3 flash

我正在制作游戏并编写代码以使用箭头键移动我的精灵。出于某种原因,弹出这两个错误。

LINE 34 警告:1090:迁移问题:在Actioncribpt 3.0中,Flash Player不会在运行时自动触发onKeyDown事件处理程序。您必须首先使用addEventListener(' keyDown' callback_handler)为事件注册此处理程序。

LINE 39 警告:1090:迁移问题:在Actionscribpt 3.0中,Flash Player不会在运行时自动触发onKeyUp事件处理程序。您必须首先使用addEventListener(' keyUp' callback_handler)为事件注册此处理程序。

这是我的动作代码

stop();

import flash.ui.Keyboard;
import flash.events.Event;
import flash.events.KeyboardEvent;

Wizard.addEventListener(Event.ENTER_FRAME, KeyClick);
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);

var keys:Array = [];

function KeyClick(e:Event):void
{
    if (keys[Keyboard.RIGHT])
    {
        Wizard.x += 5;
    }
    if (keys[Keyboard.LEFT])
    {
        Wizard.x -= 5;
    }
    if (keys[Keyboard.UP]) 
    {
        Wizard.y -= 5;
    }
    if (keys[Keyboard.DOWN])
    {
        Wizard.y += 5;
    }
}

function onKeyDown(e:KeyboardEvent):void
{
    keys[e.keyCode] = true;
}

function onKeyUp(e:KeyboardEvent):void
{
    keys[e.keyCode] = false;
}

如何解决这些错误?谢谢:))

1 个答案:

答案 0 :(得分:2)

这些只是警告;它们存在的原因是因为在ActionScript 2中,事件的工作方式如下:

target.onKeyUp = function()
{
    //
}

target.onKeyDown = function()
{
    //
}

我认为会触发警告,因为您使用了与处理器函数相同的命名约定作为处理这些事件的旧样式。

如果他们打扰你,只需将其重命名为其他内容。