[英]AS3 Errors: 1046: & 1180: Importing custom class into mc on second frame?
[英]AS3 Importing Class on Another Frame
我正在为我的一个新项目使用外部AS文件,该文件涉及创建绘图位置,因此我使用了以下教程来了解所需的基本知识。
我希望应用程序能够正常运行并正常运行,直到我决定要添加预加载和菜单-将应用程序的绘图部分放在第三帧上-这使我遇到了这个错误:
TypeError:错误#1009:无法访问空对象引用的属性或方法。
-在Main / convertToBMD()
-在Main()
因此,我认为不是将Main.as添加到属性下的Class中,而是将文件导入框架中。 使用方法:
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.
等等.....
所以我想知道,有没有更好的方法可以做到这一点并使它在任何框架上都能工作?
通过更改外部脚本中的内容还是其他导入框架的方式?
谢谢
以利
问题在于命名实例是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);
将其添加,情况就会如此addChild(main);
。 但这意味着,在Main
的构造函数中,您将无法访问stage
属性来执行上述操作。 如果这是一个问题,请考虑让Main
在使用'pencil'等之前等待ADDED_TO_STAGE
事件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.