Computer/flash

플래시로 새창 열기

박현철 2008. 2. 22. 10:13
플래시로 새창열기 , 풀스크린만들기, 풀스크린된것 줄이기, 닫기

초보이지만 최근들어 새창열기에 많은 분들이 관심을 보이셔서
이렇게 이곳에 글남기게 됐습니다. 잘못된 부분있으면 지적부탁드립니다.
투맨님 싸이트에도 있습니다.. 방법이 약간 다른부분도 있구요..
방법들을 합쳐서 소개하고자 합니다.

-------  플래시 버튼으로  새창 띄우기  ---------
개인적으로 release 보다 press를 좋아하다보니 press만 넣게 되었습니다.


플래시 버튼에 아래와 같이 액션을 줍니다.


on (press) {
getURL ("javascript:cc()");
}

         // 자바스크립트 뒤에 "cc" 라는것은 임의 변수입니다.
           (원하시는대로 주시면 된다는 말씀입니다 단 html문서에 호출될 자바스크립트 변수와 같아야겠죠.)


새창 띄울 버튼이 여러개라면?  변수를 각각 달리준후..html문서의 자바스크립트 부분만 늘려주시면됩니다.



위 플래시 버튼이 존재하는 html문서 <head></head> 사이에 아래 자바스크립트를 넣어줍니다.

<SCRIPT language=javascript>
function cc(){
url = "새창 띄울 주소" ;
window.open(url,'','toolbar=no,menubar=no,location=no,directions=no, scrollbars=no,status=yes,width=400,height=500');
}
</SCRIPT>


// 새창 띄울 주소 위에보시면 "cc"라고 있죠...  
   버튼을 누르면 자바스크립트 cc를 호출하는식입니다.
   뒤에 세부옵션은 원하시는대로 설정해주시면 됩니다.









---------------  풀스크린 플래시 싸이트 열기 --------------

풀스크린 싸이트가보시면  창이 하나뜨고 클릭하면 풀스크린 모드창이 뜨게되죠..

풀스크린 싸이트를 만들기위해서는  풀스크린으로 띄우기위한 자바스크립트가 포함된
창이 하나더 필요합니다.




1.  풀스크린을 띄우기 위한창 만들기



풀스크린을 띄우기위한 html파일에 <head></head> 사이에 아래 자바스크립트를 넣어줍니다.

<script language=javascript>
function openwindow() {
        window.open("주소","fullscreendemo","fullscreen=yes");
}
</script>



function openwindow() {  이부분에서 openwindow이라는건 변수이므로 마음대로 주셔도 풀스크린으로 뜹니다.
단 플래시 버튼에 자바스크립트를 호출할 변수랑 같아야겠죠.

플래시 버튼에..
on (press) {
getURL ("javascript:openwindow()");
}


html 로   띄우고 싶다시는 분들은
글자를 하이퍼링크하시면 되겠죠.
<a target='_blank' href="javascript:openwindow();">풀스크린</a>  이렇게요.







2. 풀스크린으로 뜰창만들기...


   풀스크린으로 뜰창은 따로 지정하지 않아도 알아서 뜹니다..
   1번에서 자바스크립트로 그렇게 뜨게 했기 때문이죠...






  2-1.  풀스크린으로 뜬창을 줄이기 버튼과 닫기버튼 만들기 시  html과 플래시버튼 2가지 방법으로 만들수 있습니다.
        
        풀스크린으로 뜰창 html문서 <head></head>사이에 아래 자바스크립트를 넣습니다.



<script language="javascript" >

function mini() {
      minobj.Click();
   }
function clo() {
      closeobj.Click();
   }

</script>
<OBJECT
   id=minobj
   type="application/x-oleobject"
   classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"
   codebase="hhctrl.ocx#Version=4,72,8252,0"
>
<PARAM name="Command" value="minimize">
</OBJECT>

<object
id=closeobj
type="application/x-oleobject"
classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<param name="Command" value="Close">
</object>

----     minimize 싸이즈로 만들기  ---

플래시 버튼에는

on (press) {
getURL ("javascript:mini()");

}


--- 풀플래시창 아주 닫아버리기 ---
플래시버튼에
on (press) {
getURL ("javascript:clo()");
}





---  html로  줄이기 닫기만들기  -----

<a target='_blank' href="javascript:mini();">창줄이기</a>

<a target='_blank' href="javascript:clo();">창닫기</a>  

자바스크립트를 이용한 새창 띄우기
( HOMEPAGE ) 01-13 12:34 | HIT : 28




파일이 총 3개가 필요합니다.
우선 플래시 fla파일과 swf 파일 그리고 html 파일입니다.
fla파일을 살펴보겠습니다.
fla파일에는 새창을 띄우는 데 사용할 버튼이 있어야 겠죠.
버튼에 넣은 액션은 아래와 같습니다
on (release) {
getURL ("javascript:openNewWindow('http://www.macromedia.com',
'thewin',
'height=400,width=400,toolbar=no,scrollbars=yes') ");
}

javascript: --> 자바스크립트함수를 이용하기 위해 공통으로 들어가는 부분입니다.

openNewWindow --> 자바스크립트 함수 이름

'http://www.macromedia.com' --> URL

'thewin' --> window name

'height=400,width=400,toolbar=no,scrollbars=yes'
--> 새창의 속성입니다. 새로크기 400, 가로크기 400, 툴바는 없고, 스크롤바는 있는 새창입니다. 속성들은 알맞게 조정을 하면 되겠죠.

아래코드를 html 파일의 <head></head> 사이에 넣습니다.
<SCRIPT LANGUAGE=JavaScript>
function openNewWindow(URLtoOpen, windowName, windowFeatures) {
newWindow=window.open(URLtoOpen, windowName, windowFeatures);
}
</SCRIPT>
다른 속성을 제어하고 싶으면 아래사이트를 참고하세요.
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/open_0.asp  

scene 이동이 잘 안된다.
( HOMEPAGE ) 01-13 12:33 | HIT : 20



큰 무비를 만들때는 무비클립을 많아 사용하거나 로드무비를 많이 사용합니다.
풀플래시를 홈피를 구성할때 사운드나 이미지 전송부담이 있기 때문에
필요한 것을 그때 그때 동적 로딩을 하는 경우가 많습니다.
하지만, 간혹 예전의 유행했던 방법은 여러개의 scene을 사용할때
scene과 scene사이의 이동이 안되는 경우가 있습니다.
보통  scene간 이동은 gotoAndPlay(scene, frame)을 사용합니다.
하지만, 이것은 메인타임라인에서 기능을 제대로 발휘하고
무비클립속에서는 전혀 기능을 하지 못합니다.
이것을 대체하기 위한 편법을 알려 드리겠습니다.
메인타임라인에서는 특정 scene으로 이동하는 명령이 먹히고
다른 위치(레벨)에서는 되지 않는다는 것에 착안한 방법입니다.
메인타임라인에 아래와 같은 함수를 만듭니다.
function test(){
   gotoAndPlay(이동할 scene,이동할 frame);
}
그리고, scene이동을 하고 싶을 때는 아래 코드처럼 넣어주면 해결됩니다.
_root.test();
좀 무식한 방법이지만, 고육지책으로 사용할수 있습니다.
flash screen 제어는 어떻게?
( HOMEPAGE ) 11-22 14:53 | HIT : 28



프로젝트 윈도우의 크기를 키우면 화면까지 같이 커져서
원하는 크기보다 커지는 경우가 발생하는데 이를 막으려면
다음과 같은 코드를 이용하면 됩니다.

fscommand ("allowscale", "false");

이렇게 해주면 윈도우의 싸이즈를 바꿔도
화면은 100%를 유지하게 됩니다.

그러나 오른쪽 버튼을 눌러서 뜨는 메뉴에서
100% 해제하게 되면 윈도우 비율에 따라
이미지 크기가 바뀌게 됩니다.
그런 경우를 방지하기 위해

fscommand ("showmenu", "false");

해 주게 되면
오른쪽 버튼을 눌러도 메뉴가 나타나지 않을 것이고,
모든 메뉴의 기능을 사용할 수 없게 되겠지요.

그리고 보통 카다로그 같은 작업을
플래쉬의 프로젝트 형태로 작업할 때는
fullscreen을 원하고 되고,

fscommand ("fullscreen", "true");

같이 사용하면 됩니다.

모든 fscommand는 Scene의 첫 프레임에서 적용시켜야 하며,
fullscreen을 이용할 경우 화면에 종료버튼을 만들어
그 버튼에

fscommand ("quit");

를 적용시켜 프로그램을 종료시킬 수 있습니다.

종료 버튼이 없으면 짜증나겠지요.  
마우스의 좌표 값으로 무비를 제어할 수 있나요?
( HOMEPAGE ) 11-22 14:51 | HIT : 10



우선 Movie Clip이 하나 만들어 보지요.
Movie Clip의 1 Frame에는 stop 액션이 있고,
2 Frame부터 10 Frame까지 Tweening을 시켰다고 합시다.

그리고, 이 Movie Clip을 메인화면에 위치시키고,
다음과 같은 코드를 이 Movie Clip에 입력해 줍니다.

그러면 마우스가 (0,0)과 (100, 100) 좌표 안에 들어오는 경우에는
Movie Clip이 움직이고, 그렇지 않으면 정지해 있겠지요.


   onClipEvent (mouseMove) {
         if (_root._xmouse>0 & _root._xmouse<100 & _root._ymouse>0 & _root._ymouse<100) {
               gotoAndPlay (2);
         } else {
               gotoAndStop (1);
         }
   }  
flash 메뉴버튼으로 html 파일 부르려면?
( HOMEPAGE ) 11-22 14:50 | HIT : 38



우선 4 개의 html 파일이 필요합니다.

1. index.html - menu.html과 main.html을
             frameset으로 나누고 불러들여야 하겠지요.
2. menu.html - menu(yourmoive.swf, flash menu)가 들어가는 파일
3. main.html - 첫 화면
4. target.html - flash movie의 버튼(menu.html에 들어있는)을 누르면 뜨는 화면

index.html에서 frameset으로 나눌 때 frame 이름을 붙여주게 되어있지요?
menu가 들어가는 frame 이름은 frame1, 첫 화면이 들어가는 frame 이름을 frame2라고 했다면,

flash movie의 버튼에 다음과 같이 입력해 주면 됩니다.

on (release) {
getURL ("target.html", "frame2");
}

_currentframe은?
( HOMEPAGE ) 11-22 14:49 | HIT : 14



_currentframe은 다음과 같이 사용합니다.


Instance Name._currentframe

여기서 Instance Name이란 물론 Movie Clip의 Instance Name을
말하는 것이지요.


_currentframe은 Timeline에서 현재 playhead가 위치하고 있는
frame의 번호(몇 번째 frame)를 반환하는 프로퍼티입니다.

예를 들어 1, 2, 3, 4, 5 frame에 각각 다른 그림이 있고,
1 frame에 stop; 액션을 걸고 버튼을 하나 만든 후
그 버튼에 다음과 같은 코드를 사용한다면,


on(release){
gotoAndStop(_currentframe + 3);
}

Movie는 1 frame에서 멈춰 있게 되고,
버튼을 누르면 4 frame으로 가서 멈추게 됩니다.  
Toolbar 없는 윈도우 띄우기
( HOMEPAGE ) 11-22 14:48 | HIT : 18



우선 3 개의 작업이 필요합니다.

flash에서 버튼을 만들고, 거기에 액션 넣기.
flash movie를 html에 넣기.
새로 뜨게 될 html 만들기.

flash movie의 버튼에 getURL 액션을 이용해서
다음과 같은 코드를 입력합니다.
scrollbar도 없애고 싶으면 scrollbars=no로 하면 됩니다.

on (release) {
getURL ("javascript:openNewWindow('some.html','thewin','height=100,width=250,toolbar=no,scrollbars=yes')");
}

여기서 some.html은 버튼을 누르면 나타나게 될 페이지.

그 다음엔 위 swf가 들어가 있는html 페이지의
<head>와 </head> 사이에
다음과 같은 코드를 입력합니다.

<script language="JavaScript">
function openNewWindow(URLtoOpen, windowName, windowFeatures) { newWindow=window.open(URLtoOpen, windowName, windowFeatures); }
</script>


그리고 나서 다음의 코드를 <embed> 태그에 추가합니다.
<embed> 태그 어디에라도 써도 되지만 width와 height 다음에
쓰는 것이 보통입니다.

swLiveConnect=true NAME=yourmovie.swf

yourmovie 대신에 swf 이름을 바꿔서 넣어야 합니다.

ex)
<html>

<head>
<title>제목없음</title>
<meta name="generator" content="Namo WebEditor v4.0">
<script language=javascript>
function openwindow() {
        window.open("main.swf","fullscreendemo","fullscreen=yes");
}
</script>


</head>

<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash4/cabs/swflash.cab#version=4,0,0,0" width="100%" height="100%">
<param name="movie" value="file:///C|/소프트웨어/flash파일/intro.swf">
<param name="play" value="true">
<param name="loop" value="true">
<param name="quality" value="high">
<embed src="file:///C|/소프트웨어/flash파일/intro.swf" play="true" loop="true" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" width="100%" height="100%"></embed>
</object></p>
</body>

</html> <XMP></XMP>

출처 : http://blog.naver.com/pd_love/110001562710