我正在制作一个横向滚动的平台游戏。因此,我有一个充当地板的课程。我还有一个代表敌人的班级。
我在将参数传递给自定义类的构造函数时遇到问题。类(SkullDemon.as)扩展了MovieClip。我正在尝试传递名为“FloorLevel1”的客户类的实例(称为“floorL1”)。 “FloorLevel1”还扩展了MovieClip(我没有“FloorLevel1”的书面.as文件;我只是将地板MovieClip导出到该类)。
我正在尝试传递“FloorLevel1”的实例,以便“SkullDemon”对象可以像平台游戏一样落在地板上。
我的主要课程名为“TME2_Main”。这是我尝试将“floorL1”实例传递给“SkullDemon”类的类。这就是我尝试创建一个Skull Demon实例并将“floorL1”传递给它的构造函数的方法:
skullD1 = new SkullDemon(floorL1);
我尝试在“TME2_Main”构造函数中创建SkullDemon。
这是“SkullDemon”类的构造函数:
// Constructor (takes in Level 1's floor variable as an argument
public function SkullDemon(floorL1:FloorLevel1) {
//public function SkullDemon() {
// Move the Skull Demon as soon as it is created
moveSkullDemon();
}
运行.swf时出现两种错误:
ArgumentError: Error #1063: Argument count mismatch on SkullDemon(). Expected 1, got 0.
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at TME2d_Main()
TypeError: Error #2007: Parameter child must be non-null.
at flash.display::DisplayObjectContainer/addChild()
at flash.display::Stage/addChild()
at TME2d_Main()
我在这里做错了什么?我花了一段时间寻找解决方案(包括在TME2_Main的构造函数之外移动代码),但到目前为止没有任何帮助我。
答案 0 :(得分:0)
听起来你在舞台上的某个地方有一个SkullDemon的实例。如果这样做,Flash将尝试在不传递任何参数的情况下调用SkullDemon的构造函数。当Sprite类的constructChildren()方法发生这种情况时,通常可以说这是问题所在。