gpt4 book ai didi

actionscript-3 - 对象主时间轴,对象舞台和as3中的root有什么区别?

转载 作者:行者123 更新时间:2023-12-03 22:40:13 25 4
gpt4 key购买 nike

我想知道as3中[object main timeline][object Stage]root之间的区别吗?

我已经阅读了How stage, root, and MainTimeline Fit Together主题。但是我不清楚。

最佳答案

我认为您链接的文章很好地总结了它(即使不能很好地解释它):

To summarize: one stage, one root per SWF (which is the main timeline) and that root is an instance of a document class or the MainTimeline class if a document class isn't provided



阶段可能是最容易理解的。每个Flash Player都有一个舞台-将其视为Flash影片在其中播放的窗口。它是最顶层的显示对象-屏幕上出现的任何内容都是该舞台的子级。阶段始终是相同的实例,并且对阶段的任何引用都返回相同的值。

根目录是特定SWF文件的显示层次结构的逻辑“顶部”。如本文所述,每个SWF都有自己的根,该根引用该SWF的文档类的实例。

在运行时将一个SWF加载到另一个SWF中时,您可以看到root和stage之间的差异。两个SWF的根号都不同,但阶段相同。每个SWF文件中的根都将引用其自己的SWF文件(即文档类)的最顶层显示对象。

MainTimeline是用于文档类的默认类。文档类是显示对象,将其添加到加载SWF电影时的舞台上。在其下面是扩展MovieClip的普通类。

文档类是您在Flash编辑器中看到的MovieClip。这是保存时间轴代码和添加时间轴动画的位置。可以使用自定义类覆盖文档类。更改文档类将更改root引用的对象的名称。

就像我被称为“人类”一样,时间轴默认情况下也称为“MainTimeline”。如果我的原子要在传送器中被弄乱,而我又被更改为其他类型的东西,例如“FreakOfNature”,则这类似于将文档更改为不同的类-结果是时间轴将变为不同类型的东西。

您可以通过以下测试来说明阶段,根目录和文档之间的关系:

1.创建一个空的FLA文件,并添加以下时间轴代码:
trace("this " + this);
trace("root " + root);
trace("root.parent " + root.parent);
trace("stage " + stage);
trace("parent " + parent);

2.运行FLA并记下输出。请注意,时间轴代码在扩展名为“MainTimeline”的影片剪辑的类中。这是root引用的同一实例。 MainTimeline实例的父级是Stage。
this [object MainTimeline]
root [object MainTimeline]
root.parent [object Stage]
stage [object Stage]
parent [object Stage]

3.将文档类别设置为您自己的类别(例如:“测试”)。请注意,该类实际上不必存在-Flash会提示您自动创建它。

4.运行FLA并记录新的输出。请注意,时间轴代码现在在另一个类中,该类扩展了称为“测试”的影片剪辑。 “测试”是添加到舞台的影片剪辑的类型。
this [object Test]
root [object Test]
root.parent [object Stage]
stage [object Stage]
parent [object Stage]

从中我们可以看到,Flash使用了一个名为MainTimeline的默认类作为文档类,除非您自己重写了该类。在加载SWF时,会将文档类的实例(无论是MainTimeline还是您自己的类)添加到阶段。

关于actionscript-3 - 对象主时间轴,对象舞台和as3中的root有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7291652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com