Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 addChild/removeChild对Actionscript 3中的内存做了什么?_Actionscript 3_Memory Management - Fatal编程技术网

Actionscript 3 addChild/removeChild对Actionscript 3中的内存做了什么?

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

我不清楚ActionScript3中的内存是如何工作的。我创建了一系列按钮,并将每个按钮的地址存储在一个数组中。这些按钮用于播放各种音乐文件,我希望播放的音乐文件具有特定的颜色(红色),其余的为白色。当当前选择的按钮被其他按钮替换时,我调用以下代码:

removeChild(songSelectButton[currSong]);
var songSelWhite:Button = new Button(null, "images/TrackButtonNo.jpg", TRACK_SELECT_WIDTH, TRACK_SELECT_HEIGHT);
songSelectButton[currSong] = songSelWhite;

这允许阵列具有正确的按钮。然而,我担心我是否在浪费记忆。垃圾收集会解决这个问题吗?还是我需要一个更好的方法?

在大多数情况下,垃圾收集非常聪明,可以清理你造成的任何混乱。但它可能需要时间来处理它,当它决定做它的事情时,它可能会占用CPU。因此,仔细管理内存是很有价值的


在您的情况下,为什么要创建一个新按钮?你已经有一个按钮了,看起来它已经在正确的位置上了。只需更改图像、任何侦听器以及您真正需要更改的任何其他属性。这样,您就不必担心新按钮会被分配或取消分配,甚至不必担心新布局会被计算。

谢谢,我就是这么想的。我会那样做的。