2010-07-25 6 views
7

javascript를 통해 주요 브라우저 (예 : Chrome, Safari, Opera)에서 플래시 플러그인 충돌을 감지 할 수있는 방법이 있습니까?FLASH 플러그인 충돌 감지

+0

당신이 탐지로 달성하고자하는 것과 같은 흥미로운 것. – Codex73

+0

그는 페이지를 새로 고치시겠습니까? –

답변

0

아마도 js가 몇 초 동안 전화를받지 못하면 as3 파일에서 keep alive 스크립트를 사용할 수 있습니다. 시간이 초과되어 플래시 충돌로 처리 될 수 있습니다. .

8

나는 그것이 작동하는지 확실하지 않습니다. 주기적으로 플래시 객체에 대한 참조를 가져 와서 SetVariable 메서드가 있는지 여부를 확인할 수 있습니다.

function checkFlashCrashed() { 
    try { 
     var tmp = document.getElementById("flashObjectId").SetVariable; 
     if(!tmp) { 
     alert("Flash crashed"); 
     return; 
     } 
    } catch (e) { 
     alert("Flash crashed"); 
     return; 
    } 
    setTimeout(checkFlashCrashed, 1000); // check it out every one second 
} 

SetVariable은 자바 스크립트 코드에서 호출 할 수있는 인터페이스 함수입니다. 플래시가 충돌하면 인터페이스도 충돌합니다. 따라서 그것은 해결책 일 수 있습니다.

+0

작동하지 않습니다 ... – Nabab

+0

+1. Chrome 23.0.12.71의 매력처럼 작동합니다. 슬프게도, OP는 초보자/트롤이었습니다. –

+0

이것은 유효하고 정확한 대답으로 보이지만 OP는 여전히 상관하지 않습니다. :) – Zafer

1

ActionScript의 전역 예외 처리를 사용하여 UncaughtErrorEvent.UNCAUGHT_ERROR에서 외부 인터페이스를 호출합니다.

Flash Player 런타임에서 오류가 발생하면 예외를 catch하고 JavaScript에 신호를 보낼 수 있습니다.

+1

예,하지만 플레이어의 코드에 액세스 할 수없는 경우에는 어떨까요? 예 : youtube player가 페이지에서 충돌합니다. 어떻게 감지합니까? – Skay

0

가양성에 대해 어떻게 느끼 느냐에 따라 다릅니다.

플래시가 여전히 작동하고있는 것처럼 보이면 "플래시가 충돌하지 않았습니다."라는 ajax 호출을하는 워치 독이있을 수 있습니다. 플래시가 쓰여지 지 않으면 플래시가 망가 졌음을 알려줍니다. 사용자가 확인 전에 페이지를 닫으면 위양성이 생성됩니다.

플래시가 작동하지 않는 것처럼 보이면 "The flash has crashed"이라는 ajax 호출을하는 워치 독이있을 수 있습니다. 이렇게하면 전체 브라우저를 종료하는 크래시와 같은 크래시를 놓칠 수 있습니다.

어쩌면 당신은 워치 독을 둘 다 가질 수 있기 때문에 무슨 일이 일어나고 있는지 더 잘 이해할 수 있습니다.