首先,我想解释的是我对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进行编码。
可能有一些语法错误的英语错误...... 所以我很抱歉我的英语很糟糕...
答案 0 :(得分:2)
在我之前遇到这个问题时,这通常是个问题:
HealthBar
可能与 FlashPro 中的库对象绑定。 (您已将其导出为actionscript并为其指定了类名HealthBar
)。
问题是FlashPro没有看到类文件,所以它生成它自己的(没有构造函数参数)。
您可以通过单击库对象的链接属性上的编辑图标来测试flashPro是否看到该文件(请参见图像)。如果自定义.as文件出现,那么这不是问题。
通常原因是.as文件不在正确的位置,或者包名称不适合文件的物理位置。
如果您的.as
文件仅使用package {
,则默认情况下该文件应与.fla
文件放在同一目录中。
如果是package bob {
那么它应该在名为bob 的文件夹中(默认情况下该文件夹与.fla在同一目录中)
您可以转到.fla查找类文件的位置,方法是转到文件菜单上的 ActionScript设置。
该窗口包含名为源路径的选项卡,您可以在其中添加目录以查找.as文件。
答案 1 :(得分:1)
您可能遇到了一个问题,这个库对象已命名为HealthBar,并为该类指定了相同的名称。如果是这种情况,则命名为Library对象HealthBarMC,并保持该类的名称相同,并查看是否有效。