Actionscript 3 addChild/removeChild对Actionscript 3中的内存做了什么?
我不清楚ActionScript3中的内存是如何工作的。我创建了一系列按钮,并将每个按钮的地址存储在一个数组中。这些按钮用于播放各种音乐文件,我希望播放的音乐文件具有特定的颜色(红色),其余的为白色。当当前选择的按钮被其他按钮替换时,我调用以下代码:Actionscript 3 addChild/removeChild对Actionscript 3中的内存做了什么?,actionscript-3,memory-management,Actionscript 3,Memory Management,我不清楚ActionScript3中的内存是如何工作的。我创建了一系列按钮,并将每个按钮的地址存储在一个数组中。这些按钮用于播放各种音乐文件,我希望播放的音乐文件具有特定的颜色(红色),其余的为白色。当当前选择的按钮被其他按钮替换时,我调用以下代码: removeChild(songSelectButton[currSong]); var songSelWhite:Button = new Button(null, "images/TrackButtonNo.jpg", TRACK_SELECT
removeChild(songSelectButton[currSong]);
var songSelWhite:Button = new Button(null, "images/TrackButtonNo.jpg", TRACK_SELECT_WIDTH, TRACK_SELECT_HEIGHT);
songSelectButton[currSong] = songSelWhite;
这允许阵列具有正确的按钮。然而,我担心我是否在浪费记忆。垃圾收集会解决这个问题吗?还是我需要一个更好的方法?在大多数情况下,垃圾收集非常聪明,可以清理你造成的任何混乱。但它可能需要时间来处理它,当它决定做它的事情时,它可能会占用CPU。因此,仔细管理内存是很有价值的
在您的情况下,为什么要创建一个新按钮?你已经有一个按钮了,看起来它已经在正确的位置上了。只需更改图像、任何侦听器以及您真正需要更改的任何其他属性。这样,您就不必担心新按钮会被分配或取消分配,甚至不必担心新布局会被计算。谢谢,我就是这么想的。我会那样做的。