Actionscript 3 AS3通过引用使对象无效
我似乎有人问过这个问题,得到的答案是在AS3中这是不可能的 所以我有一个叫做destroymc的函数:Actionscript 3 AS3通过引用使对象无效,actionscript-3,Actionscript 3,我似乎有人问过这个问题,得到的答案是在AS3中这是不可能的 所以我有一个叫做destroymc的函数: function destroymc(mcname:MovieClip):void{ mcname = null } 这不会毁掉我想毁掉的电影唇。因为它是通过引用传递的 真的没有办法让这一切顺利吗 谢谢。嗯,据我所知,要在AS3.0中“销毁”MovieClip,您需要删除对它的所有引用,并且需要从父级中删除它。然后GC可以收集它 如果你有一系列的电影嘴唇,那么像这样的东西就可以了 v
function destroymc(mcname:MovieClip):void{
mcname = null
}
这不会毁掉我想毁掉的电影唇。因为它是通过引用传递的
真的没有办法让这一切顺利吗
谢谢。嗯,据我所知,要在AS3.0中“销毁”MovieClip,您需要删除对它的所有引用,并且需要从父级中删除它。然后GC可以收集它 如果你有一系列的电影嘴唇,那么像这样的东西就可以了
var mcs:Array;
// populate array
// to destroy the first one
mcs[0].parent.removeChild(mcs[0]); // remove the first element from its parent
mcs.shift(); // remove the first element in the array
因此,如果您想在函数中输入,可以将数组传递给它
function destroymc(mcs:Array){
mcs[0].parent.removeChild(mcs[0]);
mcs.shift();
}
我在这里使用一个数组,因为您需要将这样的函数用于动态生成的MovieClips和实体管理器等。我希望这能有所帮助。谢谢,我已经知道如何将其从显示列表中删除,但问题是很难删除所有引用。我知道您可以将对象设置为null,但在您通过引用函数传递之后,就不能设置为null。这是我不知道的主要问题我明白了。这对您没有帮助,只需组织您的代码,使其不具有多余的引用。不要将引用传递给处理MovieClips的函数,而是为不同类型的函数提供一个或多个中央数组,并将索引或id传递给函数,这些函数随后作用于该数组。此外,当使用事件侦听器将对象作为目标时,请使用“弱”引用。此外,为了让GC收集它,movieclip本身必须设置为null right?它是通过引用传递的,但是引用是函数作用域的临时引用,在函数执行后它将不存在。