• Stage,MainTimeline和root


    Stage:

    Stage→DisplayObjectContainer→InteractiveObject→DisplayObject→EventDispatcher→Object

    Stage 类代表主绘图区。  

    对于在浏览器中(使用 Flash® Player)运行的 SWF 内容,Stage 表示显示 Flash 内容的整个区域。对于在 AIR 中运行的内容,每个 NativeWindow 对象都有一个相应的 Stage 对象。

    无法以全局方式访问 Stage 对象。而是需要利用 DisplayObject 实例的 stage 属性进行访问。

    stage(DisplayObject的属性):

    显示对象的舞台。Flash 应用程序只有一个 Stage 对象。例如,您可以创建多个显示对象并加载到显示列表中,每个显示对象的 stage 属性是指相同的 Stage 对象(即使显示对象属于已加载的 SWF 文件)。

    如果显示对象未添加到显示列表,则其 stage 属性会设置为 null

    MainTimeline:

    MainTimeline→MovieClip→Sprite→DisplayObjectContainer→InteractiveObject→DisplayObject→EventDispatcher→Object

    MovieClip的子类,隐藏类,在没有设置外部文档类的情况下自动创建一个对象,作为主时间轴。

    root(DisplayObject的属性):

    对于加载的 SWF 文件中的显示对象,root 属性是此 SWF 文件所表示的显示列表树结构部分中的顶级显示对象。对于代表已加载图像文件的位图对象,root 属性就是位图对象本身。对于第一个加载的 SWF 文件的主类的实例,root 属性就是显示对象本身。Stage 对象的 root 属性是 Stage 对象本身。对于任何未添加到显示列表的显示对象,root 属性设置为 null,除非它已添加到符合以下条件的显示对象容器:不在显示列表中,但属于已加载 SWF 文件中顶级显示对象的子级。

    举例说明

    先来上个官方的显示列表。下面以该图的结构为例,介绍一下它的创建过程:

    flash显示列表

    步骤一:创建舞台(系统自动)

    顶级显示容器。

    swf创建时,flash自动作如下操作:

    addChild(new Stage());

     这里的new出来的新Stage对象就是舞台。

    它的root和stage属性都是它本身。

     注:该处理解比较模糊,如有纰漏,还请见谅

    步骤二:创建SWF文件主类实例

    分两种情况,分别对应文档类和在帧上写代码两种方式

     情况一:(外部文档类)

      如果在flash中设置了外部文档类,如右图         设置外部文档类

      flash会创建一个Demo对象

    舞台.addChild(new Demo());

      这个new出来的Demo对象就是SWF文件主类实例,它加入到显示列表后,它的root属性变为它自身stage属性      变为舞台

     情况二:(帧代码)

      如果没有设置外部文档类,即上图设置为空。flash会自动创建一个MainTimeline对象。

    舞台.addChild(new MainTimeline());

      这个new出来的MainTimeline对象就是SWF文件主类实例它加入到显示列表它的root属性变为它自身stage属性变为舞台

    步骤三:创建SWF文件主类实例的所有子显示对象

      SWF文件主类实例的所有子显示对象(图中SWF文件主类实例下面的所有节点)的root属性都是SWF文件主类实例stage属性都是舞台

    ----------------------------------------注:以上均为个人所悟,如有错误还请指出。

  • 相关阅读:
    149. Max Points on a Line(js)
    148. Sort List(js)
    147. Insertion Sort List(js)
    146. LRU Cache(js)
    145. Binary Tree Postorder Traversal(js)
    144. Binary Tree Preorder Traversal(js)
    143. Reorder List(js)
    142. Linked List Cycle II(js)
    141. Linked List Cycle(js)
    140. Word Break II(js)
  • 原文地址:https://www.cnblogs.com/sdlwlxf/p/2815545.html
Copyright © 2020-2023  润新知