参数数量不正确,应为 2
Incorrect Number of Arguments, expected 2
我正在为我的 class 做这个回避游戏教程,以便我更好地理解动作脚本,游戏已经完成了,但它应该在与敌人初次接触后停止。我收到一条错误消息,说 "Incorrect Number of Arguments, expected 2." 它挑出了第 13 行,即 enemy = newEnemy();。它是不是像缺少括号一样简单?我也会 post 下面的 class。
package {
import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.TimerEvent;
public class AvoiderGame extends MovieClip {
public var enemy:Enemy;
public var gameTimer:Timer;
public var avatar:Avatar;
public function AvoiderGame() {
enemy = new Enemy();
addChild( enemy );
avatar = new Avatar();
addChild( avatar );
avatar.x = mouseX;
avatar.y = mouseY;
gameTimer = new Timer( 25 );
gameTimer.addEventListener( TimerEvent.TIMER, onTick);
gameTimer.start();
}
public function onTick( timerEvent:TimerEvent ):void
{
enemy.moveDownABit();
avatar.x = mouseX;
avatar.y = mouseY;
if ( avatar.hitTestObject( enemy ) )
{
gameTimer.stop();
}
}
}
}
Class:
package
{
import flash.display.MovieClip;
public class Enemy extends MovieClip
{
public function Enemy(startX:Number, startY:Number)
{
x = startX;
y = startY;
}
public function moveDownABit():void
{
y = y + 3;
}
}
}
您的 Enemy
class 有两个参数:startX
和 startY
,因此在这种情况下,要创建 class 的实例,您有要做:
var enemy:Enemy = new Enemy(value_of_startX, value_of_startY);
否则,编译器将触发该错误:"Incorrect Number of Arguments, expected 2."。
但是如果你想创建一个 class 的实例而不提及 startX
和 startY
,你可以像这样为你的参数设置一些默认值:
// your class
// here our default values are : 0, 0
public function Enemy(startX:Number = 0, startY:Number = 0)
{
x = startX;
y = startY;
}
然后你可以根据需要调用它,带参数或不带参数。
希望能帮到你。
我正在为我的 class 做这个回避游戏教程,以便我更好地理解动作脚本,游戏已经完成了,但它应该在与敌人初次接触后停止。我收到一条错误消息,说 "Incorrect Number of Arguments, expected 2." 它挑出了第 13 行,即 enemy = newEnemy();。它是不是像缺少括号一样简单?我也会 post 下面的 class。
package {
import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.TimerEvent;
public class AvoiderGame extends MovieClip {
public var enemy:Enemy;
public var gameTimer:Timer;
public var avatar:Avatar;
public function AvoiderGame() {
enemy = new Enemy();
addChild( enemy );
avatar = new Avatar();
addChild( avatar );
avatar.x = mouseX;
avatar.y = mouseY;
gameTimer = new Timer( 25 );
gameTimer.addEventListener( TimerEvent.TIMER, onTick);
gameTimer.start();
}
public function onTick( timerEvent:TimerEvent ):void
{
enemy.moveDownABit();
avatar.x = mouseX;
avatar.y = mouseY;
if ( avatar.hitTestObject( enemy ) )
{
gameTimer.stop();
}
}
}
}
Class:
package
{
import flash.display.MovieClip;
public class Enemy extends MovieClip
{
public function Enemy(startX:Number, startY:Number)
{
x = startX;
y = startY;
}
public function moveDownABit():void
{
y = y + 3;
}
}
}
您的 Enemy
class 有两个参数:startX
和 startY
,因此在这种情况下,要创建 class 的实例,您有要做:
var enemy:Enemy = new Enemy(value_of_startX, value_of_startY);
否则,编译器将触发该错误:"Incorrect Number of Arguments, expected 2."。
但是如果你想创建一个 class 的实例而不提及 startX
和 startY
,你可以像这样为你的参数设置一些默认值:
// your class
// here our default values are : 0, 0
public function Enemy(startX:Number = 0, startY:Number = 0)
{
x = startX;
y = startY;
}
然后你可以根据需要调用它,带参数或不带参数。
希望能帮到你。