0

我需要在游戏中多次更改“图像”的纹理。

 Image image;
 stage1.AddActor(image);
 image = new Image(texture1);
 image = new Image(texture2);
 image = new Image(texture1);
 image = new Image(texture2);
 ...

这是正确的吗?我会在内存中收集垃圾吗?不习惯使用如下几张图片:

image1=new Image(texture1);
image2=new Image(texture2);
image1.visible=true;
image2.visible=false;
...
image1.visible=false;
image2.visible=true;
....

谢谢。

4

2 回答 2

2

是的:

Image image;
image = new Image(texture1);
image = new Image(texture2); //new Image(texture1) can now be GC'ed

但是请注意,只有在无法访问时才会对它进行垃圾收集。因此,例如,如果您在列表中有引用new Image(texture1),它将阻止垃圾收集器完成其工作。

于 2012-08-27T15:42:06.657 回答
1
 Image image;
 image = new Image(texture1);
 image = new Image(texture2);
 image = new Image(texture1);
 image = new Image(texture2);

是更好的方法,因为当您执行 image = new Image(texture2);上述实例 时new Image(texture1);,假设它无法访问,则符合 GC 条件。

当 GC 发生并且对象将被 GCed 是 JVM 的责任。

于 2012-08-27T15:41:47.247 回答