【问题标题】:Passing parameters to the constructor to an object (Actionscript 3)将参数传递给对象的构造函数(Actionscript 3)
【发布时间】:2011-11-28 18:56:09
【问题描述】:

我正在开发一款横向卷轴平台游戏。正因为如此,我有一个充当地板的班级。我还有一个代表敌人的类。

我在将参数传递给自定义类的构造函数时遇到问题。类 (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's”构造函数中创建 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 的构造函数之外),但到目前为止没有任何帮助。

【问题讨论】:

  • 你确定错误是在创建指定的骷髅恶魔时发生的吗?错误是说它期待一个论点但没有得到一个论点。看起来它正在 TME2*d*_Main() 类上发生。
  • 是的,这正是我感到困惑的原因! :P 如果我从对 SkullDemon 构造函数的调用中删除参数并从 SkullDemon 类的构造函数中删除参数,则没有错误。
  • 您是否在其他地方调用了 SkullDemon 构造函数?我想我很困惑为什么你说错误发生在 TME2_Main 类中,但堆栈跟踪显示 TME2d_Main。
  • 你能打开调试器吗?这将为您提供错误发生的确切位置。根据您粘贴的代码,您的构造函数或创建对象的方式显然没有任何问题。我们要么需要查看更多代码,要么需要查看正确的错误消息。
  • 抱歉,我的回复晚了。我正在处理我的程序中的其他问题。在另一个线程中的用户的大量帮助下,我实际上已经能够解决这个问题。这是那个线程:stackoverflow.com/questions/7882235/…

标签: actionscript-3 parameters constructor arguments


【解决方案1】:

听起来你在舞台上的某个地方有一个 SkullDemon 实例。如果这样做,Flash 将尝试调用 SkullDemon 的构造函数而不传递任何参数。当它发生在 Sprite 类的constructChildren() 方法中时,您通常可以看出这是问题所在。

【讨论】:

    猜你喜欢
    • 2012-07-09
    • 2013-12-12
    • 2014-06-04
    • 2014-07-15
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    相关资源
    最近更新 更多