0

我正在为我的一个新项目使用外部 AS 文件,该项目涉及创建一个绘制位置,因此我使用以下教程来了解需要什么的基本概念。

我让希望应用程序工作并顺利运行,直到我决定要添加预加载和菜单 - 将应用程序的绘图部分放在第三帧上 - 这给了我这个错误:

TypeError:错误 #1009:无法访问空对象引用的属性或方法。
- 在 Main/convertToBMD()
- 在 Main()

所以我想而不是将 Main.as 添加到属性下的类中,而是在框架上导入文件。使用:

var main:Main = new Main();
addChild(main);

除了失去与实例名称的所有连接之外,这还有效。

Line 64 1120: Access of undefined property pencil.
Line 65 1120: Access of undefined property eraser.
Line 65 1120: Access of undefined property txt.
Line 82 1120: Access of undefined property board.
Line 83 1120: Access of undefined property board.

ETC.....

所以我想知道的是,有没有更好的方法来做到这一点并让它在任何框架上工作?

通过更改外部脚本中的某些内容或其他导入框架的方式?

谢谢

伊莱

4

1 回答 1

1

问题是命名实例是实例的属性MainTimeline,它通常是阶段的第一个孩子。这些属性不是您的Main类的属性(不再)。

因此,当您想从 with 访问这些属性时Main,您可以执行以下操作:

var timeline:DisplayObject = stage.getChildAt(0);
var pencil:DisplayObject = timeline["pencil"];

// do stuff with 'pencil'
pencil.x = 500;
...

注意:这假设Mainstage设置其属性,一旦您通过addChild(main);. 但这意味着,在 的构造函数中Main,您将无法访问该stage属性来执行上述操作。如果这是一个问题,考虑在使用“铅笔”等之前Main等待事件。ADDED_TO_STAGE

于 2012-04-15T19:55:47.237 回答