주간 베스트 월간 베스트 3개월 베스트 베스트 게시물
연길시 신화서점 조선말 도서

13 . Timer, EnterFrame 시간을 지배하다

SOLIDH | 2009.05.31 16:49:38 댓글: 0 조회: 3224 추천: 0
분류웹 프로그래밍 https://life.moyiza.kr/itstudy/1759847

플래시는 몇차원 세계일까?

플래시는 2차원 적입니다. 일단 3D 가 아니니 2차원 그래픽 이라고 하는것이 맞는 이야기 이지요. 하지만, 정말 그럴까요?

   

정답은 "아니다." 입니다.

   

수학적으로 현실의 위치를 표현한다면 우리에겐 4가지 위치점이 필요합니다.

   

X (가로위치) , Y (세로위치) , Z (수직높이 위치), T (시간위치)

   

우리가 살고 있는 현실을 3차원 세계라고 표현하는 이유는 T 가 고정불변으로 (인간의 힘으로 조절할 수 없게) 흐르기 때문에, 우리가 자의적으로 변화시킬 수 있는 요소로 X,Y,Z 만이 존재하기 때문이죠.

   

만 화나 공상과학 소설에서 가끔 이야기 하는 4차원의 세계란 과학적으로 이야기하자면 "시간" 이란것이 자의적으로 조절될 수 있는 세계를 의미합니다. (그런 의미에서 백투더 퓨처의 마지막 대사인 "4차원 세계나 가볼까나~" 뭐 이런건 틀린 의미이죠…;;; 이미 4차원적 존재들 이니까요...)

   

그 영역을 판타지나 신화적 영역으로 분류하는 것은 바로 T 축은 인간이 자의적으로 변화시킬 수 없기 때문이죠.

   

4차원 세계에 대해 무슨 "마왕이 사는 판타지 세계" 로 알고 있는 분들에겐 실망이겠지만… ㅡ ㄴ ㅡ;;; (제가 중학교 들어가기 전까지 이렇게 알고 있었습니다.) 4차원 세계 라는것은 이렇게 시간에 대해 자유로운 세계입니다.

   

4차원 세계에서 어떤일이 벌어질지 예상하기 힘든것은 우리가 3차원적 (T 축에 대해 부자유스러운) 존재이기 때문이겠죠. 여러분이 4차원 세계에 존재한다면 여러분은 어떤일을 하고 싶으신가요?

   

flash CS3 는 3.5 차원 인것 같네요

일 단 현재의 flash CS3 까지는 x, y 와 함께, 시간축 t 를 자의적으로 조절하는 것이 가능합니다. 그리고, 거기에 더불어서 index 라는 약간 어설픈 z 축을 활용하는 것 역시 가능하죠. (index, depth 에 대한 부분은 나중에 알아보도록 하죠… flash CS4… 즉, flash player10 에서는 z 축을 직접적으로 제어하는 것이 가능해지기 때문에 flash CS3 까지라고 했습니다…)

   

시 간축 t 를 자의적으로 조절 하는것이 가능하다는 것은 flash 라는 미디어에 있어서 만큼은 개발자는 시간차원에 대한 지배권한이 있다는 이야기가 됩니다. 즉… 늙은 사람을 젊게 만드는 것이 가능하고, 역사를 뒤로 되돌리는 것 역시 가능하다는 소리겠죠.

   

시간차원에 대한 권한을 가진 인간… 신으로서의 상상력은 flash 를 작업하는데 있어서 여러모로 유연한 사고를 가능하게 해줍니다. ^^ 

간단한 예제

Timer 를 사용해서 1초 단위로 어떤 이벤트가 발생하는 걸 만들어보았습니다. new Timer(밀리초) 로 생성을 하는데, 밀리초는 적어놨다시피 1000 이 1초가 됩니다. (맞나? 늙어서 기억이 가물가물…;;;) 이렇게 하면 

이렇게 초당 특정한 이벤트가 발생하게 됩니다. 뭐…;;; 다 됐네요…;;; 이렇게 시간을 제어할 수 있습니다.

   

EnterFrame

ActionScript 3 에서는 EnterFrame 보다는 Timer 를 더 권장하는 편입니다. 딱히 frameRate 에 따라서 뭔가 움직여야 하는게 아니다… 라고 한다면 Timer 를 사용하는 것이 더 좋습니다.

   

일단 EnterFrame 같은 경우엔 

이렇게 DisplayObject 에 종속되어 있는 기능이기 때문에, 그다지 범용성이 없죠…

   

Timer 의 경우엔 현실시간의 흐름을 이용하기 때문에 frameRate 에 적용을 받지 않고, EnterFrame 같은 경우엔 Frame 이 흘러감에 따라서 실행되기 때문에 frameRate 에 적용을 받습니다. 이 두가지 사항을 기준으로 선택하시면 되는데… 개인적으로는 Timer 를 사용하는 편입니다.

뭐 이렇게 간단하게 코딩을 하고 실행해보면 

숫자 a 가 지속적으로 증가하는 것을 확인할 수 있습니다.

   

Timer 를 사용해서 MovieClip 움직이기

testClip 이라는 링키지 오브젝트를 만들고 

0.1 초당 mc 가 x 위치 3 만큼 오른쪽으로 움직이도록 코딩을 해줍니다.

퍼블리싱 해보면… 보이진 않지만, 옆으로 꿈틀꿈틀 움직입니다.

   

꼭 지워줘야 해요…

시간이벤트는 cpu 에 상당한 과부하를 줍니다. Timer 를 사용하고, 지우질 않고 계속~ 가다보면 Timer 돌아가는게 쌓이고 쌓여서 흔히 이야기하는 "존내 느려! 씨밤바!" 상태가 되게 됩니다.

   

그렇기에 사용이 끝난 Timer 는

이렇게 꼭 정지, 이벤트삭제, 없애기 3콤보를 통해서 없애줘야 합니다.

   

적어도 Timer, enterFrame 에 대해서 만큼은 삭제습관을 철저히 들여놔야 합니다.

   

마지막으로 멋진 예제와 함께~

꼭 따라해보기~ ♡

   

Event 를 대충 마무리 하면서…

Mouse, Keyboard, Timer 에 관련된 이벤트들을 살펴보았습니다. UI 를 만드는데 있어서 대표적으로 사용되는 것들이죠. 하지만, 이외에도 상당히 많은 이벤트들이 존재합니다. F1 을 눌러서

flash.events package 를 한 번쯤은 둘러보라고 말씀드리고 싶네요. 그리고, 예전 수업 내용에서도 말했듯이 

이렇게 여러가지 오브젝트들의 이벤트 목록을 살펴보는 것도 중요합니다.

   

   

이 내용들은 http://ssen.name/recipe 에서도 볼 수 있습니다.

   

배가 고파요… 주륵주륵…

뭐 중간 광고 타임 입니다… 

출처: ssen님레시피

http://ssen.name/zb/901

추천 (0) 선물 (0명)
첨부파일 다운로드 ( 12 )
1.png | 114.8KB / 0 Download
2.png | 3.5KB / 0 Download
3.png | 13.1KB / 0 Download
4.png | 20.0KB / 0 Download
5.png | 2.8KB / 0 Download
6.png | 8.4KB / 0 Download
7.png | 139.6KB / 0 Download
8.png | 48.7KB / 0 Download
9.png | 142.2KB / 0 Download
10.png | 219.8KB / 0 Download
11.png | 81.1KB / 0 Download
12.png | 188.4KB / 0 Download
IP: ♡.221.♡.101
3,006 개의 글이 있습니다.
제목 글쓴이 날짜 조회
관리자
2003-09-20
12018
관리자
2003-09-20
11567
관리자
2003-09-20
20724
지구인
2010-08-27
19499
지구인
2009-09-07
13815
SOLIDH
2010-01-29
15782
엔죠라이프
2004-10-07
16864
SOLIDH
2009-06-13
2409
Ora
2009-06-10
4762
SOLIDH
2009-06-10
1298
아밥
2009-06-04
2648
아밥
2009-06-04
4389
아밥
2009-06-04
1754
아밥
2009-06-04
4562
SOLIDH
2009-06-04
3196
SOLIDH
2009-06-04
5087
SOLIDH
2009-06-04
3673
SOLIDH
2009-06-04
4415
SOLIDH
2009-05-31
2733
SOLIDH
2009-05-31
3278
SOLIDH
2009-05-31
3740
SOLIDH
2009-05-31
3801
SOLIDH
2009-05-31
3516
SOLIDH
2009-05-31
3224
SOLIDH
2009-05-31
2945
SOLIDH
2009-05-31
3036
SOLIDH
2009-05-31
2852
SOLIDH
2009-05-30
2591
모이자 모바일