Re: [問題] 物件沒有Parent,但是在舞台上活著?

看板Flash作者 (scars)時間14年前 (2011/08/21 18:36), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《dsmwang (科科)》之銘言: : 因為compile問題顯示,#1009,無法存取null屬性或方法 : 我仔細檢查後,發現這個photos的parent是null, : 所以我原本下的menu.removeChild(photo)出現錯誤 例如你 add photo 的程序錯誤產生了 photo A 跟 photo B 那 photo 這個 reference 多半會在 photo B 身上 menu.removeChild(photo)移除了 photo B photo B 的 parent 已經是 null 了 photo A 卻沒有 reference,當然也移除不了 因為我不知道你是怎麼 new 出 photo 並 add 上去的 所以也沒辦法提出一個精確的解法 這裡提供一個方向 需要remove photo的時候發出一個事件bubble到stage 例如 dispatchEvent(new Event('menu_mouseout',true)) photo裡面 addEventListner(Event.ADDED_TO_STAGE,added); addEventListner(Event.REMOVED_FROM_STAGE,removed); function added(e:Event){ stage.addEventListner('menu_mouseout',removeSelf) } function removed(e:Event){ stage.removeEventListener('menu_mouseout',removeSelf); } removeSelf裡面就是 parent.removeChild(this) 這樣你上層不用有 photo 的 reference 也可以移除所有的 photo 雖然沒解決你多餘photo出現的bug 但至少可以讓他們可以自己移除了 -- 'Cause you are beautiful your scars are beautiful like the jade -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.224.42.171

08/22 05:51, , 1F
感謝s大,之後來試試 =)
08/22 05:51, 1F
文章代碼(AID): #1EKD-a4- (Flash)
文章代碼(AID): #1EKD-a4- (Flash)