我正在使用外部AS文件来创建我的新项目,其中包括创建一个绘制的位置,因此我使用以下tutorial来获得所需内容的基本概念。
我希望应用程序正常运行并且运行顺利,直到我决定添加预加载和放大器。菜单 - 将应用程序的绘图部分放在第三帧 - 这让我犯了这个错误:
TypeError:错误#1009:无法访问null的属性或方法 对象参考。
- 在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.
等.....
所以我想知道的是,有没有更好的方法来实现这一点,让它在任何框架上工作?
通过更改外部脚本中的某些内容或其他导入到框架的方式?
谢谢
利
答案 0 :(得分:1)
问题是命名实例是MainTimeline
实例的属性,它通常是该阶段的第一个子实例。属性是Main
类(不再是)的不属性。
因此,当您想要使用Main
访问这些属性时,您可以执行以下操作:
var timeline:DisplayObject = stage.getChildAt(0);
var pencil:DisplayObject = timeline["pencil"];
// do stuff with 'pencil'
pencil.x = 500;
...
注意:这假设Main
将设置stage
属性,一旦您通过addChild(main);
添加属性,就应该如此。但这意味着,在Main
的构造函数中,您将无法访问stage
属性以执行上述操作。如果这是一个问题,请考虑让Main
在使用'铅笔'之前等待ADDED_TO_STAGE
事件等等。