프로그래밍/Flash/Flex

FABridge 와 SWFObject 동시 사용할 때 Firefox에서 실행되지 않는 문제해결

드럼캡 2009. 12. 16. 16:35
예전에는 플래시 파일을 브라우저에 심기위해 여러가지 방법이 존재 했으나 요즘은 SWFObject가 나온 이후 평정이 된듯 합니다. 거의 대부분 이 파일을 쓰고 심지어는 플래시빌더 에서도 generate되는 HTML파일들을 보면 SWFObject를 써서 코드를 간략화 하고 있습니다. 궁금하신 분들은 직접 Html 코드를 확인해 보세요 ^^

그런데 문제는 FABridge는 만들어진지 꽤 되어서 이전의 사용환경에서는 문제가 없었으나 SWFObject가 등장 하고 나서는 이상하게도 Firefox 에서 실행되지 않는 문제가 있었습니다.

개인 PC의 테스트 환경은 MAC OSX의 사파리와 VM으로 띄워서 테스트 하는 익스플로러였는데 Firefox에서 되지 않는 다는 질문을 받고 다각도로 테스트 해봤습니다.

그래서 찾은 문제점은 embed태그 때문이었습니다. embed태그는 예전 브라우저 호환성 문제때문에 남겨진 태그고 비표준 태그라 합니다. 따라서 SWFObject에서는 파이어폭스에서도 Object태그로 플래시를 임베딩 하고 있더군요. 이것이 표준태그인데

FABridge에서는 if (익스플로러 || 사파리등등은) Object로.. else 나머지는 Embed로...

위와같이 코딩되어 있습니다.
따라서 앞의 if 문에 (익스플로러 || 파이어폭스 || 사파리등등) 으로 바꿔주면 해결됩니다.

처리 프로세스는..
  1. FABridge.js 파일을 여신 후 
  2. FABridge__bridgeInitialized 함수를 찾는다
  3. 함수 안에서 if (/Explorer/.test(navigator.appName) || .... 와 같은 내용을 찾는다
  4. 그 라인 맨 뒤에 || /Gecko/.test(navigator.userAgent) 를 추가한다
모두 즐 플렉스 하세요
반응형