요즘엔 구글링을 하면서, 이 사이트 저 사이트 많이 돌아 다니고 있는데, 정말 세상을 넓고, 대단한 사람들은 많다 라고 세삼 느껴지네요.
월요일 입니다. 다들 피곤하시져?? 주말에도 일하신 분들도 있으실테고, 주말 동안 푹 쉬신 분들도 있을 겁니다. 월요일이고, 새롭게 시작하는 느낌으로 일주일을 시작하는것도 좋을듯 싶습니다.
이번에 볼 내용은 Timer class 와 Loader class 입니다. 두 클래스 모두 강력한 기능으로 작업의 능률을 높여 주는 그런 클래스들 입니다. 우선 Timer class 부터 레퍼런스를 살펴 봅시다.
Timer
|
지정된 지연 및 반복 횟수 상태를 사용하여 새 Timer 객체를 만듭니다.
delay 시간은 ms 단위로 합니다. 1000 = 1초가 되는 거지요. repeatCount 는 이 timer을 몇번 반복해서 실행 시키겠는가? 위에서는 5번 실행 시키고 실행을 중단하게 됩니다. |
꼭 start() 를 해줘야 시작이 되고, 멈추는건 stop(); 으로 멈출수 있습니다. 그러면 저거 두개만 으로 어떻게 Timer 를 활용하는가? 보통 TimerEvent 라는 Timer 가 가지고 있는 기본 이벤트와 함께 사용됩니다.
|
time.addEventListener(TimerEvent.TIMER,ontimerhandler);
1초 마다 실행되는 함수를 정의합니다. 지정한 시간에 호출되는 함수를 정의(이벤트를 생성시켜줌)
time.addEventListener(TimerEvent.TIMER_COMPLETE,onCompletehandler);
time 이 모두 실행 된 후에 실행되는 함수를 지정 (이벤트를 생성시켜줌)
//output
1초
1초
1초
1초
1초
타임 끝
우리가 쓰고 있는 enterframe 이 fps 단위로 실행되는 반면, Timer 는 초 단위로 실행 됩니다. Timer 가 enterframe 에 비해서 정확할수 있다고 말하는것도 여기에 있는듯 합니다. 다른 속성도 있으나 잘 쓰이지 않으므로 레퍼런스를 한번 보시는것도 좋을듯 싶습니다.
Loader
|
Loader()
SWF, JPEG, GIF 또는 PNG 파일 등을 로드하는 데 사용할 수 있는 Loader 객체를 만듭니다.
ld 라는 로더를 만들어서 URLRequest 로 정의된 주소값의 jpg나 gif png swf 파일을 로드 합니다.
참고 ) URLRequest URLRequest 클래스는 하나의 HTTP 요청에 포함된 모든 정보를 캡처합니다. 말이 어려워지므로, 걍 주소를 정의하기 위해서는 URLRequest 타입으로 해야 된다는것만 알아 주세요 (2.0 과의 차이점입니다. )
|
|
같은 폴더에 image.jpg 라는 파일이 있어야 로드가 됩니다. 없으면 URL 에러를 일으킴니다.
//output
로드중
로드중
로드중
로드중
로드끝
여기서 contentLoaderInfo 는 뭔가?
contentLoaderInfo : LoaderInfo
[read-only] 로드 중인 객체에 해당하는 LoaderInfo 객체를 반환합니다.
|
LoaderInfo 란 Loader 에 의해 불러와지는 데이터의 정보 입니다. 예를 들면 jpg 이미지라면 크기 (width, height 가 있겠지요?)
Loader 는 이러한 LoaderInfo 를 참조하여 그 값들을 변경할수 있습니다. 어쩌피 이미지가 swf 파일이 로드 되는 것도 bitmapdata 를 거쳐서 들어 오는것이기 때문에 변환이 가능합니다. ( 하지만 크로스 브라우징 문제가 발생할수도 있습니다 )
|
위의 completehandler 함수에서는 event.target.content 로 정보를 받은 뒤 변경을 해 주게 되고 progresshandler 에서는 byteLoaded 를 이용해서 실시간 로드된 값을 알수 있습니다. 이것을 이용해서 로딩 바를 만들수 있습니다. 앞으로 만들어 볼것의 기본이 되는 두 클래스를 설명해 보았습니다. 잘 이해 안되는 부분은 질문 날려 주시고요 . 잘못된 부분이나 추가 내용은 댓글이나 답글 달아 주세요. 이 공간의 저 만의 강좌 공간이 아니라, 강좌라는 주제에 대해 토의하는 공간입니다. 쑥스러워 하지 마시고, 참여 부탁드립니다. 그럼 두 클래스를 이용한 간단한 해보기 입니다.
1. 5장의 이미지를 준비
2. 배열에 5장의 이미지를 저장
3. Timer class 를 이용해 2초에 한번씩 로드 되는 겔러리를 만든다.
겔러리를 만들면서 Ctrl + Alt + del 을 눌러 메모리가 늘어 나는 상황을 관찰해 봅시다! 기초 스터디 팀에게는 미리 낸 해보기라, 미리 올라온 소스를 참고해 보시는것도 좋을듯 합니다. 다하신 분들은 꼭 메모리가 늘어 나는 상황을 관찰해 보시기 바람니다.
수고 하셨습니다. 기분좋은 한주 시작 하세요!
'동강의AS3.0 강좌' 카테고리의 다른 글
[Base] 9강 클래스를 이용한 이미지 슬라이드 - 1 (2) | 2008.12.11 |
---|---|
[Base] 7강 - 사용자 정의 클래스의 이해 (4) | 2008.12.11 |
[Base] 6강 - Document Class 로의 진화 (0) | 2008.12.11 |