看板 Flash 關於我們 聯絡資訊
※ 引述《yhn0tgb60 (呦厚厚)》之銘言: : 另外 as3的 delete 是用在什麼情況阿 好像很少看到人用 : 好像大多都是用 null....
Lawnchern:所以 delete是....什麼時候會用呢@@?我也想知道 04/10 11:09
terrylchen:我記得之前看的說明好像是說delete沒辦法刪除區域變數 04/10 19:24
terrylchen:不知道正不正確... 04/10 19:25
要清除一個 myVar 變數儲存的reference 寫法就是 myVar = null 區域變數沒有清除不清除的問題 凡是跳出該區域變數的scope之後 自然該變數就被消除了 delete的用法主要是針對清除以下資料用的 1. dynamic class物件的dynamic property Object class就是一個dynamic class 所以可以有以下的dynamic property宣告寫法 var obj:Object = new Object(); obj.something = true; 寫 obj.something = null 是無法清除 obj.something 這個變數的 因為 obj.something 這個變數還在 只是儲存的值為 null 要一了百了的消除 obj.something 這個dynamic property 正確的寫法是 delete obj.something; 2. Dictionary物件的key-value pair 建立Dictionary物件的key-value pair寫法如下 var dic:Dictionary = new Dictionary(); dic[myKey] = myValue; 而清除此key-value pair資料的寫法是 delete dic[myKey]; 清除一整個Dicitonary物件的key-value pairs的寫法則是 for (var key:* in dic) { delete dic[key]; } -- 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: 118.168.26.26 ※ 編輯: cjcat2266 來自: 118.168.26.26 (04/10 23:37)
terrylchen:喔喔...好清楚XD 04/11 00:23
emily114005:原來要清除Dictionary要用delete阿 都用錯了 感謝cj 04/12 00:31
yhn0tgb60:那再請教一個問題 當我把一個class=null 04/13 10:47
yhn0tgb60:需要先將class裡面的 變數=null嗎 04/13 10:49
yhn0tgb60:還是當 class=null時 裡面的資源就全釋放了??? 04/13 10:50
yhn0tgb60:甚至當我 unload一個 swf時 04/13 10:55
yhn0tgb60:是否需要先將裡面的class先 null??? 04/13 10:55
yhn0tgb60:還是說當我 unload時 就已經全部釋放資源了 ??? 04/13 10:56
cjcat2266:不需要全部null,無法存取的物件自成一個"島(island)" 04/13 11:25
cjcat2266:garbage collector會把island全部清除 04/13 11:26
cjcat2266:island可以看成是一大塊orphan 04/13 11:26
cjcat2266:orphan(孤兒)意即無法存取的物件 04/13 11:26
yhn0tgb60:謝謝 ^^ 04/13 13:35