以下代码段中的错误如何?
var child1:ApplicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
var child2:ApplicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
var same:Boolean = (child1.parentDomain === child2.parentDomain);
trace(same);
答案 0 :(得分:2)
你正在使用严格相等运算符并且你正在创建两个新对象,即使它们共享一些属性,即作为参数传递给构造函数的currentDomain它们不是同一个对象,如果你是首先创建
var temp:ApplicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
然后将其指定为child1和child2,然后检查他们的父域名,我敢打赌你会得到不同的结果。我会在那里抛出一个断点,查看child1 / child2以及child1.parentDomain和child2.parentDomain(在调试面板中)的内存地址,以确定这里发生了什么,遗憾的是ApplicationDomain对象是其中的一部分Flash的闭源部分。