1

我是 Flash/ActionScript 的新手,在为我的一些符号创建自定义基类时遇到了一些麻烦。

我有一个包含许多行星的闪存文件,并且我想存储有关每个行星的一些信息,因此我在 actionScript 文件中创建了一个 Planet 类,其中包含每个行星的最低和最高温度等信息。

在我的主 Flash 文件中,我为每个星球制作了一个带有自定义图片的符号,每个星球都有不同的动画。我想要做的是将这些符号中的每一个的类设置为行星,我最初只是通过将库中的链接更改为行星来做到这一点,但这仅适用于一个符号,一旦我在另一个符号上更改它就停止工作,它不会让你将它们设置为同一个类。所以我尝试右键单击它并转到属性并设置'export for actionscript'然后我将类命名为'Mercury'或'Venus'并将基类设置为Planet(行星扩展了movieclip)。它向我保证,即使它找不到金星,它也会在出口时为我生成它。我按 command + enter ,它会出现以下编译时错误:

../Main.as, Line 9  1046: Type was not found or was not a compile-time constant: Venus.

..Main.as, Line 31  1046: Type was not found or was not a compile-time constant: Mercury.

当它只使用 1 个类时,它会创建一个带有默认构造函数的 Planet 实例,然后在 Main 方法中我会在该类上调用一个“初始化”函数,这将让我设置实例变量和事件处理程序供以后使用。我只需要知道如何让 flash call 为我的其他符号创建更多 Planet 实例,而无需将它们组合成一件事。

任何提示将不胜感激!谢谢。

4

1 回答 1

1

你的问题有点令人困惑;但是,您似乎想创建一个基类“Planet”并让其他类(例如 Mercury 和 Venus)继承它的属性。从这里您可以设置您的库符号以使用 Plant 作为基类。您可以这样做:

基类:

package
{
    import flash.display.MovieClip;

    public class Planet extends MovieClip
    {
        // vars
        public var temperature:Number;
        public var radius:Number;
    }
}

您的实际行星的类(每个行星需要一个):

package
{
    public class Venus extends Planet
    {
        /**
         * Constructor
         */
        public function Venus()
        {
            // set properties here
            temperature = 900;
            radius = 12.93;
        }
    }
}

如果您创建这些文件,那么一切都应该正常工作。

于 2011-05-01T04:36:48.897 回答