2011-05-01 2 views
0

저는 EZFLAR와 Flash로 책/잡지를 만들고 있습니다. 그러나 나는 많은 마커가 필요합니다 (FLAToolkit이 더 많을수록 그것들은 구별 할 수 없게됩니다). 그래서 지금 저는 다른 방법을 시도해보십시오. 마커는 세 개 뿐이지 만 각 마커에 대해 다른 동작을 트리거하는 다른 SWF를로드하십시오.EZFLAR/webcam unloadAndStop 문제

이렇게하려면 사용자가 클릭하는 내용에 따라 특정 swf를로드하는 담당 loader.swf를 만들었습니다. 첫 단추로 시작했는데 제대로로드됩니다. 단지 두 가지 문제가 있습니다.

첫 번째 문제는 중요하지 않지만 웹캠 스트림 위에 아무것도 추가하지 못하고 EZLFAR.fla에 배치하지 못하는 것입니다. 웹캠은 항상 모든 것을 다루고 있습니다. 그런 다음 UI (어쩌면 뒤로 버튼 또는 다른 swf 로더)를 배치 할 수있는 약간의 여백을 추가하기로 결정했습니다.

두 번째 문제가 발생했습니다. unload() 또는 unloadAndStop() 작업을 수행 할 수 없습니다. 나는 함수 안에 추적을 넣어서 클릭으로 들어 왔는지를 확인했습니다. 그러나 웹캠 swf를 언로드하지는 않습니다. 또한 웹캠 swf에 리스너를 추가하면 클릭이 감지되지 않습니다.

import flash.display.Loader 
import flash.net.URLRequest 
import flash.events.Event 

var myLoader:Loader = new Loader(); 

rptr.addEventListener (MouseEvent.CLICK, raptorLoad); 

function raptorLoad (e:MouseEvent):void 
{ 
    var url:URLRequest = new URLRequest("rptr.swf"); 
    myLoader.load(url); 
    addChild(myLoader); 
} 

myLoader.addEventListener(MouseEvent.CLICK, unLoad); 

function unLoad (event:MouseEvent):void 
{ 
    trace("click!"); 
    myLoader.unloadAndStop(); 
} 

어떤 도움이 크게 감사합니다, 감사 :

이 내 코드입니다!

답변

1

Loader.unload()는로드 된 내용을 삭제하지 않고 Loader 인스턴스의 표시 목록에서 제거합니다. 콘텐츠를 수동으로 삭제해야합니다. 자세한 내용은 Loader.unload documentation을 확인하십시오.

카메라 위에 콘텐츠를로드하는 것과 관련된 다른 문제는 그 코드를 더 이상 보지 않아도 문제가 무엇인지 알기가 어렵습니다. 로더에 이벤트 리스너를 추가하는 것이 좋습니다. 추가하기 전에로드가 완료 될 때까지 기다리십시오.

+0

스트림 위에 무언가를로드하는 것을 의미하지는 않습니다. 예를 들어, 캔버스에 놓은 텍스트가 카메라 스트림에 의해 덮히는 경우,이 경우 레이어를 어떻게 관리 할 수 ​​있습니까? 또한, unloadAndStop이 모든 것을 없애기로되어 있지 않습니까? – Kirby

+0

unloadAndStop은로드 된 swf 내의 참조를 제거하고 가비지 수집에 사용할 수 있도록 컨텐츠를 만듭니다. 이걸 호출하면 오류가 발생합니까 아니면 작동하지 않는 것처럼 행동합니까? 레이어링 문제는 setChildIndex를 사용하여 해결할 수 있습니다 ... 모두 동일한 표시 목록에 있다고 가정합니다. – Corey

+0

오류가 없으며 아무 일도 일어나지 않습니다. 로드 된 swf를 클릭하지 않은 것처럼. – Kirby