使用功能时出现未知标识符?
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)——所以仅仅因为你的构造函数有名为 upKey
和downKey
,这并不意味着您也可以在其他函数中自动使用它们,例如 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);
}
}
在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)——所以仅仅因为你的构造函数有名为 upKey
和downKey
,这并不意味着您也可以在其他函数中自动使用它们,例如 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);
}
}