3

首先,我要解释的是我对 ActionScript 不熟悉,所以请不要因为一些基本错误而责备我。我只是学了很短的时间。因此,一些编写 ActionScript 脚本的技巧总是值得赞赏的。:)

我不知道为什么编译器说我的一个类的构造函数不接受任何参数。

好的。您可能会通过下面显示的代码了解我的意思。

这里有一个 Player.as:

public class Player extends Sprite
{
    public var mcHealthBar:HealthBar;
    public function Player()
    {
        // Here a compiler error is found.
        mcHealthBar = new HealthBar(max_health);
    }
}

还有一个 HealthBar.as:

public class HealthBar extends MovieClip
{
    private var max_hp:int;

    public function HealthBar(MaxHP:int)
    {
        // constructor code
        max_hp = MaxHP;
    }
}

编译器说 HealthBar 的构造函数不能与参数一起使用,但是您可以清楚地看到 HealthBar 内部的 HealthBar() 构造函数已经编写了参数 MaxHP。

最后,我想问的是,为什么会产生编译器错误?

注意:我同时使用 Flash-Builder 和 Flash-Professional 进行编码。我通过 Flash-Builder 创建了一个 Flash-Professional 项目。我使用 Flash-Professional 进行绘图,并使用 Flash-Builder 进行编码。

可能有一些语法错误的英语错误......所以我很抱歉我的英语很糟糕哈哈......

4

2 回答 2

2

当我以前遇到这个问题时,这通常是问题:

HealthBar可能与FlashPro中的库对象相关联。(您已将其导出为 actionscript 并为其指定了类名HealthBar)。

问题是 FlashPro 没有看到类文件,因此它生成了它自己的(没有构造函数参数)。

您可以通过单击库对象的链接属性上的编辑图标来测试 flashPro 是否看到该文件(见图)。如果定制的 .as 文件出现,那么这不是问题。 检查 FlashPro 是否看到您的 .as 文件

通常原因是 .as 文件不在正确的位置,或者包名称不适合文件的物理位置。

如果您的.as文件只是 using package {,则默认情况下,该文件应与该文件放在同一目录中.fla

如果是,package bob {那么它应该位于名为 bob的文件夹中(默认情况下,该文件夹与 .fla 位于同一目录中)

您可以通过转到文件菜单上的ActionScript 设置来更改 .fla 查找类文件的位置。

该窗口有一个名为Source Path的选项卡,您可以在其中添加目录以查找 .as 文件。

于 2014-11-20T17:21:56.883 回答
1

您可能会遇到一个名为 HealthBar 并为该类分配相同名称的库对象的问题。如果是这种情况,请命名库对象 HealthBarMC 并保持类同名,看看是否有效。

于 2014-11-19T16:18:10.387 回答