我有一个例程,它反复构建和重建一个充满按钮的大型动态影片剪辑,称为“bigList”。当它重建时,它首先尝试丢弃 bigList,以便它不会重复地将它的实例添加到舞台(它已经做了一段时间)。
我想出了这个似乎可以解决问题的代码:
if (bigList.stage)
{
trace("...bigList exists, better trash it");
bigList.parent.removeChild(bigList);
bigList = null;
bigList = new MovieClip();
trace("...done trashing.");
}
它似乎工作......我关心的是垃圾收集和内存泄漏等。通过执行上述操作,我是否正确地摆脱了旧的 bigList 并重新替换它,或者内存中是否会有我必须处理的数据?
除此之外,每次构建 bigList 时,它都会添加几十个动态生成的 mc,每个 mc 都有一个事件侦听器来检查点击。当我每次都丢弃 bigList 时,所有这些实例和侦听器是否也都在附近?
我是否需要遍历 bigList 的所有孩子并将它们以及它们的听众也丢弃?有没有一种有效的方法来做到这一点,丢弃一个顶级对象及其所有子对象和侦听器,还是我已经用我的代码得到了它?
非常感谢!