개발/Javascript

Flash 위에 게시판 올리는 법

신매력 2013. 4. 30. 03:07

웹디자인 공부하던 시절에 통플래시 홈피를 만들었는데

자바스크립트를 몰라서 게시판을 못얹었었다.

그때 고생이 생각나서, 웹디자이너분들을 위해 정리해본다.




1. Flash에서 버튼에 Action주기


게시판 버튼에(타임라인에 들어가지 않게 조심) F9를 눌러 action을 준다. 


on(release) {   
   getURL("Javascript:showHideBtn('board','show')");
}



게시판 이외에 버튼 모두에 다음 Action을 준다.

(다른 버튼을 누를 때는 게시판이 보이지 않아야 하므로)

on(release) {   
   getURL("Javascript:showHideBtn('board','hide')");
}




2. HTML 페이지



플래시를 html 페이지에 로드시킨 후,
게시판이 들어갈 아이프레임을 만든다.

다음 코드를 추가한다.


<div id="board" style="display:none">

    <iframe src ="게시판 주소" width="100%" height="100%" frameborder="0" allowtransparency="true">
    </iframe>
</div>


게시판의 위치가 알맞게 될 때 까지는 display:none을 지우고 확인한다.


* allowtransparency="true"  

내 홈피의 경우, 플래시 배경이 검은색이었는데 
iframe을 넣으면 IE8 버전에서만 아이프레임부분 배경이 흰색으로 나오는 현상이 있었음.
저 속성을 넣으면 아이프레임의 배경을 투명하게 적용할 수 있다.


플래시 올리는 태그는 생략.


3. 자바스크립트 처리



다음 코드를 <head></head> 사이에 넣는다. 


<script type="text/javascript">
<!--
function showHideBtn() {
    args = showHideBtn.arguments;

    if(args[1] == 'show') {
        showHideLayers(args);
    } else if (args[1] == 'hide') {
        showHideLayers(args);
    }
}

function showHideLayers(args) {
    var obj = document.getElementById('board'); // board (div 태그의 id명)
    if(args[1] == 'show'){
        obj.style.display = "";
    } else{
        obj.style.display = 'none';
    }
}
//-->
</script>



이렇게 하면 완성!!


이걸 적용한 내 홈페이지

http://hagulu.com/ram 

(지금 게시판 연결 안해놨지만 어쨌든... ㅋㅋ)



* 참고로 내 홈페이지에서는 창이 스르륵 뜨는 효과를 적용했기 때문에,

게시판이 뜨는 시점을 딜레이 시켰다.


첫번째 if문에서 (게시판이 보여질 경우) 

showHideLayers(args); 이 코드 대신


 setTimeout(function() {showHideLayers(args);}, 1600);


를 넣어주면 게시판이 뜨는 시점을 딜레이 시킬 수 있다.

1600이 시간이므로 원하는 만큼 숫자를 조정하면 된다.