即使uiloader卸载,EventListener仍处于活动状态

| 我当前在父movieclip中使用三个uiloader,该uiloader可以加载其他三个swf文件。这些影片剪辑中的每一个都有键盘事件,当敲击时会发出不同的声音。 转到动画片段并返回到父级时,我遇到了问题,事件监听器仍处于活动状态。我一直在尝试不同的操作,例如从uiloader卸载swf文件,但是该事件仍然处于活动状态,即使我失去焦点也可以直接访问它。 我很确定问题是在舞台上有事件侦听器,但是当我退出swf文件后,真的不知道如何卸载它。 任何帮助将不胜感激。     
已邀请:
你是对的。键盘事件通常是在舞台上注册的(即stage.addEventListener(KeyboardEvent.KEY_UP,someFunction);),这意味着该舞台持有对动画片夹的引用,即使您尝试卸载它,它也不会收到收集到的垃圾。 有两种解决方法。您必须注销注册keyboardListener stage.removeEventListener(KeyboardEvent.KEY_UP,someFunction);。或者您可以将侦听器注册为弱引用: stage.addEventListener(KeyboardEvent.KEY_UP,someFunction,false,0,true); 最后一个参数(true)表示该事件已注册为弱引用。默认为false。     

要回复问题请先登录注册