编译器错误让我在ActionScript中感到困惑

时间:2014-11-19 16:01:13

标签: actionscript-3 flash-builder4.5 flash-cs5.5

首先,我想解释的是我对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.as中的HealthBar()构造函数已经用参数MaxHP编写。

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

注意:我正在使用Flash-Builder和Flash-Professional进行编码。 我通过Flash-Builder创建了一个Flash-Professional项目。 我使用Flash-Professional进行绘制,然后使用Flash-Builder进行编码。

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

2 个答案:

答案 0 :(得分:2)

在我之前遇到这个问题时,这通常是个问题:

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

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

您可以通过单击库对象的链接属性上的编辑图标来测试flashPro是否看到该文件(请参见图像)。如果自定义.as文件出现,那么这不是问题。 Check to see if FlashPro sees your .as file

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

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

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

您可以转到.fla查找类文件的位置,方法是转到文件菜单上的 ActionScript设置

该窗口包含名为源路径的选项卡,您可以在其中添加目录以查找.as文件。

答案 1 :(得分:1)

您可能遇到了一个问题,这个库对象已命名为HealthBar,并为该类指定了相同的名称。如果是这种情况,则命名为Library对象HealthBarMC,并保持该类的名称相同,并查看是否有效。