flash - AS3 类/基类构造函数

标签 flash actionscript-3 actionscript constructor flash-cs5

我的 previous 的后续行动问题。

我的舞台上有一个按钮,其中有一个名为 Game1 的类(我没有定义该类,只是将其链接起来,就像胡安回答我的其他问题一样)。该按钮以“GameButton”为基类,目前包含一些简单的 x、y 语句。

我的所有按钮都有一个虚拟类“GameX”和一个基类 GameButton;这样它们继承自基类,但它们仍然可以有不同的图形。

我有一个主类,其中包含添加此按钮的代码:

public class MainAteam extends MovieClip
{
    public var btn1:Game1;

    public function MainAteam()
    {
        btn1 = new Game1();
        addChild(btn1);
        btn1.addEventListener(MouseEvent.CLICK, startGame1);
    }
    // startGame 1 function here
}

现在,我希望能够通过参数给出 x、y 值,以便我可以将每个按钮放置在不同的位置。但是,当我尝试 new Game(5,5) 并将以下内容放入 GameObject 构造函数中时:

package 
{
 import flash.display.SimpleButton;

 public class GameButton extends SimpleButton
 {
    public function GameButton(startX:Number, startY:Number)
    {
        x = startX;
        y = startY;
    }
  }
}

我收到以下错误:

1203: No default constructor found in base class GameButton

我真的不知道如何解决这个问题,因为我让 Flash 为我定义了 GameX 类(我想它们只是空的)并使用基类来设置一些属性。如果我只是输入 x=5; y=5 ,效果很好。非常感谢。

最佳答案

这是两件事之一,要么你需要调用 super();从你的构造函数中,或者你没有在初始化时实现所需的类属性/方法。尝试扩展 Button,而不是 SimpleButton,看看这是否更适合您。

编辑 我的第一个答案是正确的,但仍然是错误的。问题是您正在创建 Game1、Game2 等类,而不是调用 GameButton 类的构造函数。当你扩展一个具有必需的构造函数参数的类时,你必须使用 super(); 提供它们。因此,在这种情况下,您需要在 Game1 类构造函数中调用:

super(positionX, positionY);

或者

您可以修改 GameButton 构造函数以具有默认值,如下所示:

public function GameButton(var x:int = 0, var y:int = 0)

如果你不知道,super() 只是访问基类构造函数的一种方法,基类也可以称为父类(super class),这就是该方法称为 super 的原因:)。希望这会有所帮助。

还有

另请注意,如果您从 Flash IDE(在库中)创建这些 Game1、Game2 类等,那么您将需要像 Flash 自动一样向 GameButton 构造函数添加默认值为库对象生成类。或者,您仍然可以在预编译的库剪辑中创建图形,而不是在导出为 Actionscript 设置中定义类 + 基类,而是像为 GameButton 所做的那样手动创建实际的 Game1/Game2 等类,然后在导出为Actionscript 区域放置完整的限定类名。就像这样:

enter image description here

关于flash - AS3 类/基类构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5371347/

相关文章:

ios - 闪存临 CS6 : Publishing for iOS using AIR - "Could not access digital certificate"

flash - AS3 : Analyzing sound spectrums one by one, 一次一个 channel

javascript - 为什么我不能让 Javascript 与 ActionScript 对话

c# - 希伯来语/犹太语日期转换

Java + Flash => 事件驱动?

flash - 用于Flash开发的FOSS工具

java - 使用字符串数组调用 FREFunction

flash - 什么是开发Flash应用程序的最佳开源工具?什么是最好的开始学习的地方?

actionscript-3 - AS3 麦克风隐私设置仅显示 3 个选项卡

html - 在浏览器中查看时如何让我的 Flex 应用程序垂直滚动?