使用功能时出现未知标识符?

Unknown Identifier while using function?

在player.hx中:

public function new(X, Y, _upKey:String, _downKey:String){
    super(X, Y);

makeGraphic(20, 20, FlxColor.RED);

immovable = true;
}

在PlayState.hx中:

override public function create():Void
{
    super.create();

    add(new Enemy(300, FlxG.height - 20, 10, 20));
    add(new Enemy(500, FlxG.height - 40, 10, 40));

    add(player = new Player(60, FlxG.height - 40, "UP", "DOWN"));
}

它 returns 给我 Player.hx 文件中的错误 "Unknown identifier: upKey" 和 "Unknown identifier: downKey",即使我已经在函数中设置了这些错误。我该如何解决这个问题?

函数参数仅在该特定函数中可用(这被称为变量的 scope)——所以仅仅因为你的构造函数有名为 upKeydownKey,这并不意味着您也可以在其他函数中自动使用它们,例如 update()

要做到这一点,您需要将参数保存到 Player class:

的成员变量中
class Player extends FlxSprite
{
    var upKey:String;
    var downKey:String;

    public function new(X, Y, upKey:String, downKey:String)
    {
        super(X, Y);
        this.upKey = upKey;
        this.downKey = downKey;
    }

    override public function update():Void
    {
        super.update();
        trace(upKey, downKey);
    }
}