안녕하세요?
FIrefox를 제외하고 플래시와 통신을 할때..(mx까지..) getVariable와 setVariable를 애용해왔는데요,
이게 Firefox에서는 통하지 않는다는걸 알았습니다..^^;;
그래서 Flash8을 설치한후에 ExternalInterface.addCallback를 이용해서 Flash와 Javascript의 통신을 해보려합니다.
일단 기본적으로.. Flash코드는,
this.GetLoaded = function() {
return _root.Loaded;
}
//this.addProperty("LoadFlash", this.GetLoaded, null);
ExternalInterface.addCallback("LoadFlash", "", this.GetLoaded);
이런식입니다.. 주석처리한 부분은 이전에통신할때 쓰던 부분입니다..get/setVariable..
그리고, Javascript부분은
function showswf( id, swf, w, h ) {
document.write( '<Object id="' + id + '" clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="' + w + '" height="' + h + '">' );
document.write( ' <param name=movie value="' + swf + '" /' );
document.write( ' <param name=quality value=high />' );
document.write( ' <param name="' + "allowScriptAccess" + '" value="' + "always" + '" />' );
document.write( ' <param name="' + "showLiveConnect" + '" value="' + "true" + '" />' );
document.write( ' <embed src="' + swf +'" name"' + id + '" quality=high allowScriptAccess=always showLiveConnect=true pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="' + w + '" height="' + h + '"></embed> ' );
document.write( '</object>' );
}
입니다..
문제는 여기서부터 입니다.
이렇게 했을때, showswf를 호출해주고나서,
function getMovieName(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
//return window[movieName]
return document.getElementById(movieName)
}
else {
//return document[movieName]
return document.getElementByName(movieName)
}
}
var obj = getMovieName("menuFlash");
if (obj == null) {
alert("obj null");
}
이부분에서 alert가 계속 뜹니다..
어떤 문제일까요? 이래저래 상황을 바꿔줘도.. 일단 플래시 개체를 찾지 못하니, 힘들군요 ^^;;
flash에서 ExternalInterface.call로 js함수를 호출한건 뜨는것을 확인했습니다.
ExportOption은 Flash8, ActionScript2.0, 입니다..
FlashPlayer 버전은 9.x입니다..
///////////////////////////////////////////////////////////////
답글




