看板 Flash 關於我們 聯絡資訊
yhn0tgb60:我知道問題了... 因為 ldr 是區域變數 07/06 16:04
yhn0tgb60:所以他在 LoadComplete之前 就已經被系統清除了 07/06 16:05
yhn0tgb60:變數ldr已經被系統清掉了所以也沒有 LoadComplete這回事 07/06 16:06
yhn0tgb60:本來我放區域變數 想說系統會幫我清除 可以節省資源= = 07/06 16:07
yhn0tgb60:可能系統清除記憶體需要些時間吧 不會即時清除 07/06 16:11
cjcat2266:我覺得有可能是記憶體用量過大... 07/06 17:39
嗯,看來我們兩個都各說對一半 因為圖片佔記憶體空間不少,所以很容易觸發garbage collection 當test()執行完的時候所有的Loader物件都成為orphan 自然會被garbage collector解決掉,就算是還沒有載入完成者也一樣 解決方法之一 就是用一個array把這些Loader物件的reference保留住 在此我另外用一個Dictionary保留Loader物件在array的index var indices:Dictionary = new Dictionary(); var array:Array = new Array(COUNT); public function test():void { for (var i:int=0; i < COUNT; i++) { var _ldr:Loader = new Loader(); indices[_ldr] = i; array[i] = _ldr; //下略 然後在LoadComplete裡才把reference釋放掉 private function LoadComplete(evt:Event):void { array[indices[evt.currentTarget]] = null; //下略 這樣就不會有載入未完成就被garbage collector清掉的問題了 -- CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓 Blog http://cjcat.blogspot.com Gallery http://cjcat2266.deviantart.com ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.160.182 ※ 編輯: cjcat2266 來自: 114.45.160.182 (07/06 17:52)
dsmwang:原來是這樣! 07/06 17:56
yhn0tgb60:謝謝了 ^^ 07/06 19:23
jimi7788:學習! 07/07 09:57