重用對象能帶來內存和性能的節省,但有好多情況,對象是不能重用的。
最典型的例子是Loader。
var load:Loader = new Loader();
load.load(new URLRequest("img.jpg"));
調用了一次load.load(),程序就會開始加載資源,如果再次調用load.load(),而前一次還沒加載完成,就把前一次結果沖掉了,這一般不是我們想要的結果。由此看來,Loader的對象不適合重用,所以每次都要重新new。什麼情況下對象纔可以重用呢?
1.對象的方法都是及時的,一般都是常見的工具類,如StringUtil等。
2.對象的方法不是及時的,但每次調用都互不干擾,也就是可重入。如TweenLite.to。tweenlite是如何做的呢,其實沒調用一次to方法,都生成一個類來實現緩動的過程。仿造tweenlite的做法,也可以做一個這樣的loader。