zoukankan      html  css  js  c++  java
  • 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属性都是舞台

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

  • 相关阅读:
    [script]判定dd是否成功
    [script]判定某一个脚本是否正确执行
    [wifi]wifi模块的测试
    [其他]设计开发
    [应用]Linux下" >/dev/null 2>&1 "
    [log]利用logrotate对Linux log进行管理
    [sz,rz]使用sz/rz在两台Linux设备之间传输数据
    [Kernel]内核版本添加字符和内核版本'+'解决
    [Linux应用]Linux应用程序输出数据重定向到文件中
    [systemd]How To Use Systemctl to Manage Systemd Services and Units
  • 原文地址:https://www.cnblogs.com/sdlwlxf/p/2815545.html
Copyright © 2011-2022 走看看