RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR

플래시 무비를 만들었는데...


플래시 무비를 만들었는데...


용량이 너무 커서.. 로딩되는데 시간이 길다?


로딩될때까지 텅빈 하얀화면 보고있기도 그렇고..



그래서 준비했습니다..ㄱ-


기본기능과 간단한(?)액션을 이용한 프리로더 만들기..


준비물 : 적어도.. 플래시 mx 이상 (Flash 8 권장)


※주의 : 본인은 플래시 8.0을 사용하므로 화면구성과 기능에 차이가 있을수 있음을 알려드립니다.


사용자 삽입 이미지


우선 컴포넌트창을 띄웁니다. (8.0기준 ctrl + F7 혹은..window메뉴 어딘가..)


혹시 이번 강좌에 사용할 프로그래스 바가 없다면..


플래시 웹사이트에 가셔서 플래시 익스텐션 매니저를 설치하시고 추가팩을 다운받으셔야합니다.

(사실 기본오브젝트라 없을일은..)


사용자 삽입 이미지


메인화면으로 프로그래스바를 드래그해서 추가합니다.

사용자 삽입 이미지

 
그 다음.. 추가한 진행바 오브젝트의 이름을 bar1이라고 지정합니다.
 
 
사용자 삽입 이미지

그 다음은 파라메터창을 클릭하고 나오는 목록에서 모드를 메뉴얼로 설정합니다.

(반드시 메뉴얼로 설정해야합니다. 안그럼 ㄱ-)

사용자 삽입 이미지

다음은 레이어 설정인데..


저는 처음부터 레이어를 하나 더 만들어서 아래 로딩바 레이어에 프로그래스바를 추가했습니다.

그리고 액션레이어의 1,3에 빈 키프레임을 만들었습니다.


참고로 레이어에서 타임라인 추가하는 방법은..

그림에 로딩바처럼 이어진 프레임을 삽입하는 방법은,

원하는 위치에서 F5를 눌러주면, 그 위치까지 알아서 이어진 프레임을 삽입합니다.

액션바처럼 비어있는 프레임 삽입방법은..

원하는 위치에서 F6을 누르면 비어있는 키프레임을 생성합니다.




자..다음부턴 고난이도의 액션삽입입니다...

(주의 : 대소문자구별 확실히해야함..)


우선 액션 레이어의 1프레임을 클릭하고 액션창(window 메뉴-> Action 혹은, 단축키 F9)을 띄웁니다.


1프레임 액션창에 써넣을 내용은..


bytesTotal=this.getBytesTotal();


플래시 액션스크립트에서 말하는 this라는 단어는 자기자신을 의미합니다.

보통.. 액션에서 경로를 지정할때 상대,절대 두가지의 경로로 지정하는데

절대경로 방식은.. _root.xxx.xxx.xxx. .....이런식으로 항상 메인 타임라인을 기준으로(_root)

도트(.)를 사용하여 폴더트리처럼 내려가는 방법.

상대경로 방식은.. 항상 그 액션이 적용되는 오브젝트,타임라인 자신을 기준으로 경로를 지정하는 방식으로..

자기자신을 this로 표현하여 상위는 _parent 하위는 this.xxx.xxx ...이런식으로 나타냅니다.


앞으로 나올 this들은 액션이 실행되는 오브젝트들 자기자신을 의미합니다.



즉 구문을 해석하면..


액션은 가장 상위인 메인 타임라인의 액션레이어상에 위치하므로

getBytesTotal(); 이라는 전체 플래시 무비의 크기를 구하는 액션을 사용하여

등호연산자(=)를 써서 bytesTotal라는 변수에 대입한다는 의미입니다.

한마디로..전체 플래시무비의 크기를 bytesTotal에 저장한다는 말입니다.

(참고 : 변수의 지정은..미리 지정된 액션,특수문자등을 제외한 어떠한 단어,숫자의 조합도 상관없습니다. 대소문자구별 O)


그 다음 액션레이어 3프레임에는 다음을 입력합니다.


bytesLoaded=this.getBytesLoaded();


this.bar1.setProgress(this.bytesLoaded, this.bytesTotal);

if (this.bar1.percentComplete<100)

{
   this.gotoAndPlay(_currentframe-1);
}


자..해석하면..


우선 bytesLoaded라는 변수에 전체 플래시 무비의 지금까지 로드된 용량을 구해서 그 값을 저장하고


처음 추가한 프로그래스바(this.bar1로 경로설정)를 UI오브젝트 프로그래스바 컨트롤액션 setProgress로 컨트롤합니다.

(사실상.. 1프레임 bytesTotal와 3프레임 bytesLoaded란 변수들은 setProgress의 상세옵션을 위해 만든 구문입니다.)

즉, setProgress는 전체 크기와 로드된 크기를 비교해서 진행바가 몇%를 가리킬지 컨트롤하는것입니다.


아아..어딜가나 빠지지않는 조건문 if..

해석은.. 만약 bar1의 퍼센트 완료가 100%보다 미만일 경우..

gotoAndPlay액션을 사용해 바로 그타임라인에서 바로앞(만든대로라면 2프레임으로 가겠죠..)으로 이동

액션실행이 가장 우선권이기때문에 프레임이 진행하려해도 100%가 안되면 앞으로가라는 명령때문에

100%가 되기전까진 계속 2,3프레임의 무한루프 반복이 되는것입니다.

사용자 삽입 이미지

그 다음.. 장면창(Scene)을 띄워서 (Shift + F2 혹은 window메뉴 에서 찾아보시길..)

프리로더를 만든 장면을 마음대로 이름바꿔주고 (저는 Loading이라고..)

장면을 하나 더 추가해서 추가된 장면에 만들고싶은 내용...플래시로 홈페이지를 만들던지

앨범을 만들던지는 만드는사람 마음입니다.



내용추가..(07/1/25 Thu)


만든걸 시험해보실땐..


[리빙포인트]

로딩이 아닌 내용이 들어갈 장면에 첫프레임에 스탑(stop();)을 걸어주면 좋다.

내용이 들어갈 장면에 음악이나 동영상을 일부러 집어넣어서 용량 늘리고 어디 올려놓고 시험해봐도 좋다.


그리고 하나 더 수정할 부분은..


bytesTotal과 bytesLoaded는 변수라기보단..

사실..플래시 자체에서 기본적으로 지정되있는 내장함수(?)..인것같습니다.

단지 전체바이트를 알아내고 로드된 바이트를 알아내라는 단어에 불과하고

거기에 등호로(=)어디에있는 어떤 값을 대입할건지 지정한 것입니다.

즉..단독으로는 행동이 불가능한 그런 녀석들입니다.


여기까지 읽으신분들...수고하셨습니다 ㄱ- ;


(이거 쓰고나니 새벽 2시네;; 아 졸려..OTL..뭐..주야전도된지 오래지만..

그럼..3시간 자고 알바뛰러가볼까..ㄱ-;;)



출처 - 클라리스 님 블로그

이올린에 북마크하기
2007/05/15 18:56 2007/05/15 18:56
http://jiny.kr/trackback/183
전체 (406)
지니소식 (4)
자료실 (4)
정보|뉴스 (5)
SmartPhone (1)
Languages (206)
Server (153)
Database (27)
Design (4)
Gallery (0)
분류하기귀찬.. (2)
«   2012/05   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
  1. 창의력과 상상력을 넘어서  2009
    Tomcat 6.0 기본 환경 설정
  2. 닥공  2009
    서블릿 tomcat 6.0 실행시 에러
  1. 2010/07 (1)
  2. 2010/05 (1)
  3. 2010/02 (3)
  4. 2010/01 (3)
  5. 2009/05 (2)
Statistics Graph