Re: [問題] 讀取 貼圖失敗 要再重新讀取的問題???

看板Flash作者 (CJ Cat)時間15年前 (2010/07/06 17:51), 編輯推噓3(300)
留言3則, 3人參與, 最新討論串3/3 (看更多)

07/06 16:04,
我知道問題了... 因為 ldr 是區域變數
07/06 16:04

07/06 16:05,
所以他在 LoadComplete之前 就已經被系統清除了
07/06 16:05

07/06 16:06,
變數ldr已經被系統清掉了所以也沒有 LoadComplete這回事
07/06 16:06

07/06 16:07,
本來我放區域變數 想說系統會幫我清除 可以節省資源= =
07/06 16:07

07/06 16:11,
可能系統清除記憶體需要些時間吧 不會即時清除
07/06 16:11

07/06 17:39,
我覺得有可能是記憶體用量過大...
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)

07/06 17:56, , 1F
原來是這樣!
07/06 17:56, 1F

07/06 19:23, , 2F
謝謝了 ^^
07/06 19:23, 2F

07/07 09:57, , 3F
學習!
07/07 09:57, 3F
文章代碼(AID): #1CClomiL (Flash)
討論串 (同標題文章)
文章代碼(AID): #1CClomiL (Flash)