使用功能时未知的标识符?

时间:2016-02-12 09:44:08

标签: haxe haxeflixel

在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"));
}

它返回给我错误"未知标识符:upKey"和"未知标识符:downKey"在Player.hx文件中,即使我已经在函数中设置了它们。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

函数参数仅在该特定函数中可用(这称为变量的范围) - 因为您的构造函数具有名为upKeydownKey的参数,这并不意味着您也可以在update()等其他功能中自动使用它们。

为了能够做到这一点,你需要将参数保存到Player类的成员变量:

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);
    }
}