DisplayObject 四大变动屬性

声明:  本文章转自 Ticore's Blog

DisplayObject 四大變動屬性指的是 stage、parent、root、loaderInfo
這些物件本身的屬性會隨著相對物件變動而變
常常會令人難以捉摸~

依據這些屬性變動行為,DisplayObject 又可以分為三類:

  • Stage
  • Document Class
  • Other DisplayObject

以下則是相關屬性與行為對照表:

 StageDocument ClassOther DisplayObject Class
stage總是得到 stage只要該物件有被加入 stage dom tree 之下,
便可經由 stage 屬性取得 Stage,否則為 null
只要該物件有被加入 Stage dom tree 之下, 便可經由 stage 屬性取得 stage,否則為 null
parent總是得到 null只要該物件有被加入 DisplayObjectContainer 之下, 便可經由 prent 屬性取得 DisplayObjectContainer, 否則為 null只要該物件有被加入 DisplayObjectContainer 之下, 便可經由 prent 屬性取得 DisplayObjectContainer, 否則為 null
root總是得到 stage總是得到自己本身會得到最接近 parent document class or stage,否則為 null
loaderInfo總是得到不完整功能的實體可以得到實體,但是不會隨著相對物件變動會得到最接近 parent document class or stage loaderInfo,否則為 null

以上的特性可以很容易被驗證
由於相當繁瑣,僅對 Document Class 與非 Document Class 的 root 變動性作一個示範

main class:

package {
 import flash.display.*;
 import flash.net.*;

 public class main extends MovieClip {
  var modURL:String = "module.swf";
  var ldr:Loader = new Loader();
  var req:URLRequest = new URLRequest(modURL);

  public function main():* {
   ldr.load(req);
   this.addChild(ldr);
  }
 }
}

module class:

package {
 import flash.display.*;
 import flash.events.*;

 public class module extends MovieClip {
  public function module():* {
   this.addEventListener(Event.ADDED_TO_STAGE, onAddStage);
  }
  public function onAddStage(evtObj:Event):* {

   this.removeEventListener(Event.ADDED_TO_STAGE, onAddStage);
   
   var mc:MovieClip = new MovieClip();
   mc.name = "mc";

   trace(mc.root);  // null
   this.addChild(mc);
   trace(mc.root);  // [object module]
   parent.parent.addChild(mc);
   trace(mc.root);  // [object main]

   trace(this.root);  // [object module]
   parent.parent.addChild(this);
   trace(this.root);  // [object module]
   
  }
 }
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值