AS3 - 类型和类

时间:2013-03-29 18:57:28

标签: actionscript-3

我不太确定,但我猜我的问题与我如何宣布我的变量有关。

以下代码在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,Line 14 1120:访问未定义的属性fish3。

并且我正在指定我的鱼的x坐标的每一行 编译错误说

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

fish变量属于Fish类型,我在我的.fla文件中定义了它们。 先谢谢你了!

1 个答案:

答案 0 :(得分:1)

你的类需要子类化某种形式的DisplayObjectContainer,其中MovieClip和Sprite是两种可能的选择(找出,确定)。

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

    class Main extends Sprite {
       public var fish1:Fish = new Fish();
       public var fish2:Fish = new Fish();
       public var fish1:Fish = new Fish();
       public function Main() {
          addChild(fish1);
          addChild(fish2);
          addChild(fish3);
          //not going to type this crap.
          //positioning code (and addChild) is a waste of time.
          //that's what the stage is for!
       }
    }