2012-08-06 4 views
1

외부 SWF 파일을로드하는 간단한 확장형 광고가 있습니다. 외부 SWF 파일에 포함 된 비디오가 포함되어 있습니다.AS3 UILoader swf가 백그라운드에서 계속 재생됩니다.

UILoader 구성 요소를 사용하여 SWF를로드하고 무대에 추가하면 비디오가 제대로 표시되고 잘 재생됩니다.

주된 문제는 비디오를 언로드해야하는 닫기 버튼이 있으며 광고를 중단하고 본질적으로 광고의 기본 상태로 돌아가는 것입니다.

내가 다음을 수행하고는 SWF를 언로드하려면 : 나는이 작업을 수행 할 때, 비디오 및하여 UILoader가 화면에서 사라

myUILoader.unload(); 
removeChild(myUILoader); 

. 그러나 배경에서 사운드를들을 수 있으며 SWF를 다시로드하면 배경에 여러 트랙이 만들어집니다. 어떤 제안?

+0

'myUILoader'를 null로 설정하면 어떻게됩니까? 정말로 수행해야하는 것은로드중인 SWF에서 코드를 편집하고 필요한 사운드/비디오를 모두 처리하는 'Event.REMOVED_FROM_STAGE' 이벤트를 추가하는 것입니다. – Ronnie

답변

1

이 문제를 일으킬 수있는 몇 가지가 있습니다. 하나는 UILoader 내부의 내용이 이벤트 리스너를 자체 외부에 추가하는 것입니다. 외부에서 아무 것도 만지지 못하게하면이 문제를 해결할 수 있습니다. 자신의 ApplicationDomain, SecurityDomain 또는 둘 다에 배치하여이 작업을 수행 할 수 있다고 생각합니다. 자세한 내용은 도움말을 참조하십시오.

가능하지 않은 경우 SoundMixer.stopAll()을 시도해보십시오. 그러면 명백한 증상이 멈추지 만이 상황에서 발생할 수있는 메모리 누수는 해결되지 않습니다.

Ronnie가 언급 한 또 다른 가능성은 여전히 ​​사용자가 어딘가에서 로더의 내용에 대한 참조를 가지고 있다는 것입니다. 그것을 지우지 않으면, 그것은 기억 속에 남아있을 것입니다.

그러나 동영상에 "stream"으로 설정된 오디오가 포함 된 MovieClip이 포함 된 프레임을 탐색하는 탐색이있는 경우에는 MC가 만들어 지지만 재생되지는 않습니다 완전히 인스턴스화되며 메모리를 제어 할 수 없으며 릴리스 할 수 없습니다. 나는 이것이 당신의 묘사에서 일어나고 있다고 생각하지 않습니다. 그렇다면 잠시 동안 다른 프레임으로가는 도중에 사운드가 들어있는 프레임을 방문해야합니다. 실제로 사운드가 없어도 고려해야 할 사항입니다. 중첩 된 MovieClip의 프레임을 건너 뛸 때마다 (SWF를 프로파일 링하지 않으면 증거가없는 경우에만) 발생하며 시간이 지남에 따라 메모리 누수가 발생합니다.

관련 문제