0

我不太确定,但我猜我的问题与我声明变量的方式有关。

下面的代码在 AS3 中合法吗?

    var fish1:Fish = new Fish;
    var fish2:Fish = new Fish;
    var fish3:Fish = new Fish;
    var fish4:Fish = new Fish;
    addChild(fish1);
    addChild(fish2);
    addChild(fish3);
    addChild(fish4);
    fish1.x = 0;
    fish2.x = 150;
    fish3.x = 300;
    fish4.x = 450;

我收到 addChild 的每一行的编译器错误说:

Main.as,第 14 行 1180:调用可能未定义的方法 addChild。Main.as,第 14 行 1120:访问未定义的属性 fish3。

对于我指定鱼的 x 坐标的每一行,我都会收到编译器错误消息

Main.as,第 15 行 1120:访问未定义的属性 fish4。

鱼变量的类型是鱼,我已经在我的 .fla 文件的库中定义了它们。提前谢谢你!

4

1 回答 1

1

您的类需要对某种形式的 DisplayObjectContainer 进行子类化,其中 MovieClip 和 Sprite 是两种可能的选择(一定要找出来)。

但我怀疑真正的问题是你正在编写类代码,就像它是时间线代码一样。我认为你可能关闭了严格模式,这就是为什么你没有得到有用的编译时错误,这将帮助任何熟悉 AS3 的人(尽管可能不是你)立即弄清楚你的代码应该看起来更像

    类主要扩展雪碧{
       public var fish1:Fish = new Fish();
       public var fish2:Fish = new Fish();
       public var fish1:Fish = new Fish();
       公共函数 Main() {
          addChild(fish1);
          添加孩子(鱼2);
          addChild(fish3);
          //不打算输入这个废话。
          //定位代码(和addChild)是浪费时间。
          //这就是舞台的用途!
       }
    }
于 2013-03-29T19:48:49.963 回答