【问题标题】:AS3 - types and classesAS3 - 类型和类别
【发布时间】:2013-03-20 12:50:52
【问题描述】:

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

以下代码在 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。

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

【问题讨论】:

  • Fish 扩展了什么类? x 属性是公开的吗?

标签: actionscript-3


【解决方案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)是浪费时间。 //这就是舞台的用途! } }

【讨论】:

  • 成功了!原来这是我的范围的问题。我正在使用我的 Main 类在 Main 函数之外声明变量并调用 addchild 和 x 。感谢您的帮助!
猜你喜欢
  • 2011-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-09
  • 2011-09-09
  • 2021-08-09
相关资源
最近更新 更多