作者STARGAZERs (星之影)
看板Flash
標題[問題] 關於事件移除
時間Sun Jul 18 18:27:47 2010
Flash 在每個物件加入場景的時候要使用 addchild 這指令
每個物件又可以擁有好幾個監聽事件 addEventListener(Event, fun)
移除事件的時候要使用 removeEventListerer(Event, fun);
一直以來對於這點有些疑惑
當我把物件 removeChild 系統應該要自動釋放記憶體
(在沒有其他監聽的狀況下)
如果還有監聽系統就無法自動釋放記憶體
到以上的概念不知道是否有誤!!!!!
重點就在....
解除監聽的時候一定要知道是什麼事件 還有 fun....
有沒有甚麼辦法在不知道的情況下解除監聽阿???
還有一個小小問題是...
如果是 fun (e:MouseEvent) { }
有沒有辦法用指令強制觸發這個 function ?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.116.184
1F:推 etrexetrex:fun(new MouseEvent("")); 這樣應該就觸發了 07/18 18:54
2F:推 cjcat2266:局訂什麼時候解除listener是程式設計師自己的責任 07/18 21:19
3F:→ cjcat2266:想偷懶就設addEventListener的weakReference參數為false 07/18 21:20
4F:→ STARGAZERs:恩... 感謝 CJ 大指導!! 07/19 11:50
5F:→ STARGAZERs:不過我剛剛查了一下 adobe !! 07/19 11:50
6F:→ STARGAZERs:useWeakReference:Boolean (default = false) 07/19 11:51
7F:→ STARGAZERs:所以是原場寫錯還是我該設定成為 true ?? 07/19 11:51
8F:→ STARGAZERs:我也很想自己解除... 可是這樣有點難搞... 07/19 11:51
9F:→ STARGAZERs:幾乎是每種分頁都要特定寫一次 觸發移除很亂說 ><" 07/19 11:52
10F:→ STARGAZERs:E 大 請問這樣子我有辦法指定 target 嗎? 07/19 12:13
11F:→ STARGAZERs:還是說我該創造一個 MouseEvent .... 07/19 12:15
12F:推 etrexetrex:或許可以先弄一個 MouseEvent 把 target 都設好再丟? 07/19 14:59
13F:→ STARGAZERs:聽起來是個好主意 我等等測看看... 07/19 17:33
14F:→ STARGAZERs:感謝 E 大 還有 CJ大 ~ 07/19 17:33
15F:推 cjcat2266:打錯,要設成true才對... 07/19 17:36
16F:→ ben0209:在 removedFromStage 時,remove 所有 event listener 07/20 09:57
17F:→ STARGAZERs:意思是利用 remove Event 即使沒有 也不會出錯來做? 07/20 17:15