그래서이 프로젝트에는 여러 개의 SWF가 있으며 이러한 SWF 중 하나의 인스턴스 만로드 할 수있는 방법을 찾아야합니다.단일 SWF 응용 프로그램 인스턴스입니다. AS3
예를 들어 두 개의 다른 브라우저 또는 동일한 컴퓨터의 탭에서 동시에 두 개의 다른 응용 프로그램 SWF를 열 수 없습니다.
의 LocalConnection 그러나, 우리는 IE9가 특별히 즉시 SWF를 파괴 할 것 같다 인터넷 익스플로러 9
private var lc:LocalConnection = new LocalConnection()
try
{
lc.connect ("Main");
//continue
}
catch (e:Error)
{
//swf exists.
}
에 문제가 발생하는,이 문제에 대한 최선의 해결책이 될 것 같았다. 페이지를 새로 고침하면 "Swf Exists"가 표시 될 수 있으며 몇 초 후에 새로 고침하면 문제가 해결됩니다.
왜 이런 일이 발생하는지 알고 있습니까?
그런데 실패했습니다. Exit 이벤트가 있는지 아는 사람이 있습니까? 예를 들어 SWF가 종료되면 해당 이벤트를 catch하고 종료 전에 로컬 연결을 수동으로 닫을 수 있습니까?
onApplicationExit(e:Event): void
{
lc.close();
}
마지막으로 단일 swf 인스턴스를 구현하는 데 사용할 수있는 다른 방법이 있습니까?
감사합니다. Pkyeck. 그러나 그것은 또한 어떤 종류의 Stage로 종기가 아닙니다. 이벤트를 종료 하시겠습니까? 사용자가 브라우저를 닫을 때 공유 객체에서 플래그를 재설정 할 방법이 없으므로?(즉, LocalConnection을 닫는 방법은 없습니다). – Clark
음, 네 말이 맞아. IE의 내용이 다른 문제라고 생각했습니다. 어쩌면 당신은 일종의 타임 아웃으로 작업 할 수 있습니다 : SWF에 대한 고유 ID를 생성하고 5 초마다 ID와 타임 코드를 SharedObject에 씁니다. SWF가 열릴 때마다 ID를 비교하고 시간 코드가 5-10 초보다 오래되었는지 확인합니다. 그렇다면 공유 객체를 덮어 쓰지 않으면 닫습니다. 그런 것 ... – pkyeck