[Flash] Form Tag내에서 안되는 ExternalInterface 버그 해결법

플래시는 역시 버그가 너무 많다..

8Ball에서 야심차게 ExternalInterface라는거 만들어 놓더니 Form Tag안에 있는 Flash는 객체 id가 없다는 에러를 내주신다..

해결법은 아래...



jwatkins said on Mar 4, 2006 at 8:37 PM :

"Externalinterface does not work for ASP.NET (aspx) pages because the flash object must be placed inside a form."

It actually does. Instead of making the window.YourFlashName = new Object. Make it:

window.YourFlashName = document.forms[0].YourFlashName;

Then all should be right in the world. If you use VS, just debug the javascript to see what's going on.

출처: http://livedocs.macromedia.com/



참고 : http://cafe.naver.com/flashdev/17730
참고 : http://egoing.net/268




하지만........
더 나은 해결법이 있다.
IE ActiveX패치 이후 Flash는 대부분 External Script를 만들어 출력한다.

그렇다면 다음과 같이 Flash를 출력하는 함수밑에 객체를 생성해주는 코드를 살짜쿵 날려주면 되는것이다!!!!!

 function Flash(id, url, width, height)
{
var str;
str = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="' + width + '" height="' + height + '" id="' + id + '" align="middle">';
str += '<param name="allowScriptAccess" value="sameDomain" />';
str += '<param name="movie" value="' + url + '" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />';
str += '<embed src="' + url + '" quality="high" bgcolor="#ffffff" width="' + width + '" height="' + height + '" id="'+ id +'" name="' + id + '" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
str += '</object>';

document.write(str);

//Flash의 ExternalInterface가 Form Tag내에서 오류나는 버그를 해결하는 코드
eval("window." + id + " = document.getElementById('" + id + "');");
}





아... 근데 이글루에 코드 올리는거 개고생이네...ㅉㅉ
할수없이 티스토리 순번을 기다려야하나...

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by 귀뫄뉘 | 2007/02/22 20:38 | ┣ programming | 트랙백 | 덧글(2)
트랙백 주소 : http://kuimoani.egloos.com/tb/48038
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by Robert at 2007/04/06 01:27
nice
Commented by egoing at 2007/08/10 20:36
좋은 방법 감사합니다.

:         :

:

비공개 덧글