繁体   English   中英

在另一个框架上的AS3导入类

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM