메뉴 건너뛰기

XE : Xpress Engine




웹디자인 강의

■불꽃놀이
[참고문헌] 에이콘_플래시MX 액션스크립트



[플래시 레이어 설명]
레이어1을 무비클립. 레이어2를 액션레이어라 한다.
(액션레이어 1프레임에 아래 액션을 넣는다.)
무비클립은 원을 하나 만들고..무비클립으로 등록한다.
Scene에서 인스턴스네임을 mainstar라고 하고 크기는 가로/세로 3.0 정도로 한다.
              
액션레이어    |●|                              
무비클립       |●|

[액션]

moveMe = function () {
        this._x += this.dx;
        this._y += this.dy;
        this.dy += .5;
        this._alpha -= 2;
        if (this._y>400) {
                this.dx = Math.random()*10-5;
                this.dy = Math.random()*-10-10;
                this._alpha = 100;
                this._x = 275;
                this._y = 390;
        }
};
for (i=0; i<120; i++) {
        nm = "star" add i;
        mainstar.duplicateMovieClip(nm, i);
        _root[nm].dx = Math.random()*10-5;
        _root[nm].dy = Math.random()*-10-10;
        _root[nm].onEnterFrame = moveMe;
        _root[nm]._x = 275;
        _root[nm]._y = 390;
}
mainstar.onEnterFrame = moveMe;

[초보 설명] 고수님께서 보시고 설명이 잘못되어 있으면 리플 달아 주세요.

이것은 아래 설명을 위해 위 sample을 선택한 것임.
불꽃 모양이 이상하더라도 이 이상의 모양은 불가하므로..모양이 이상하게 느껴지시면 나름대로 해 보세요.

1.Callback 구문이 보통
  _root.인스턴스이름.메소드 = function() {
  실행문 ;
  } ;

  이렇게 되나... 위에 for구문 안에 또 똑같은 function문이
  들어가므로... function문 이하를 moveMe로 바꿈.
  그리고 마지막에 mainstar.onEnterFrame = moveMe; 넣음

2.this→내가 속해 있는 무비클립에 명령..
  여기서는 특정한 1개의 무비클립을 지칭하는 것이 아니라..
  star로 생생되는 무비 클립에도 적용하므로 그냥 this로 오브젝트범위를 지정

moveMe = function () {
        this._x += this.dx;
        this._y += this.dy;
        this.dy += .5;
        this._alpha -= 2;
        if (this._y>400) {
                this.dx = Math.random()*10-5;
                this.dy = Math.random()*-10-10;
                this._alpha = 100;
                this._x = 275;
                this._y = 390;
        }
};
for (i=0; i<120; i++) {
        nm = "star" add i;
        _root.mainstar.duplicateMovieClip(nm, i);      //여기도 _root
        _root[nm].dx = Math.random()*10-5;
        _root[nm].dy = Math.random()*-10-10;
        _root[nm].onEnterFrame = moveMe;
        _root[nm]._x = 275;
        _root[nm]._y = 390;
}
_root.mainstar.onEnterFrame = moveMe;                 ///여기도 _root

*//여기도 _root ...이것은 _root를 안붙이도 됨..이해를 돕기위해
즉..여기서는 mainstar 무비클립 1개를 지칭.

3._alpha 값는 color믹서파렛트(값)과 동일(0에서 100)

4.Math.random()*10-5;
  Math. 이라고 붙으면 수식
  Math.random()이 0에서 0.99999999
  수식으로 풀면
  Math.random()*10-5 →(0 ~ 0.999999)*10-5=-5 ~ 4.999999

5.복사하는 메소드 duplicateMovieClip(인스턴스 이름, depth);
  
  _root.mainstar.duplicateMovieClip(nm, i);
   이렇게 되어 있으므로 스테이지(_root)에 있는 오브젝트(mainstar)를 복사하고
   인스턴스 이름 주고 그리고 depth(겹쳐지는/쌓이는/포개지는) 깊이
   ...depth 숫자가 클수록 위에 위층이 됨...그래서 같은 층에는 쌓이지 않음
   즉 복사되는 오브젝트는 모두 각기 다른 층에 있음.

6.[  ] → array acess 연산식

   ...[nm]을 수학식으로 생각해서 .nm. 같이 dot를 하면 안됩니다.
     →예를 들어 _root[nm]._x = 275; 이것을 _root.nm._x = 275; 이렇게 하면 nm은 변수가 아니라
       하나의 인스턴스이름으로 바뀌게 됩니다.
  ...[전문가 설명]******전문가에게 물어 본 답변임.
     여기서 이것은 일종의 상속연산자 대용으로써
     [ ]를 사용시 사이에 변수를 대입 할 수 있다는 장점이 있습니다.
     그래서 nm = "jsh"; 나 아니면 nm = 10; 이라고 한다면..
     _root[nm] 이란 _root.jsh 내지는 _root.10 이런식으로 인스턴스로 명명 될 수 있습니다.
  ...nm = "star" add i → nm = "star" + i 와 동일
     star는 문자열이므로 더블쿼테이션을 붙인 것임.
     (예. star0, star1..이런 식으로 인스턴스이름붙음)
번호 제목 글쓴이 날짜 조회 수
공지 공지 강좌를 올리기전 공지사항을 읽어주세요 [12] Eccen 2004.12.15 48031
71 스위시맥스11강[평가문항만들기] [3] 에듀멘 2006.02.28 3791
70 스위시맥스- 한글버젼 동영상강좌[1강~12강] 에듀멘 2006.03.08 8437
69 [플래시 동영상강의] 플래시 위에 다른페이지 띄우기 [6] 서기 2006.03.17 8403
68 플래시 기능 질문입니다. [2] 곽연숙 2006.03.17 14344
67 플래시 고수님 질문및 도움좀 부탁드립니다(웹에서 플래시가 안나타납니당) [4] 아진 2006.03.24 3172
66 플래쉬 크기 관련 질문입니다. [2] 2006.04.03 2655
65 glanda 2006 - 플래시앨범[1강좌] - 2분만 공부하세용 [3] 에듀멘 2006.04.04 5813
64 glanda2006 - 배너[2강좌] - 2분만 공부하세용 [1] 에듀멘 2006.04.04 3853
63 glanda 2006 - 웹진만들기[3강좌] - 2분만 공부하세용 에듀멘 2006.04.04 4391
62 glanda 2006 강좌,교재 zip파일[서버속도때문에 그렇습니다]. 에듀멘 2006.04.04 2142
61 [동영상] 제1강 flash 소개 및 화면구성 tool 설명 인테리어뱅크 2006.04.11 2169
60 [동영상] 제2강 motion 명령과 심볼 [98] 인테리어뱅크 2006.04.11 4000
59 [스위시 맥스]_그라디언트 적용 메뉴버튼 만들기(동영상강좌) [1] shop 2006.04.14 4949
58 뷰렛빌더1강-[컴퓨터 강의제작방법] 에듀멘 2006.04.14 3429
57 뷰렛빌더2강-[컴퓨터 강의제작방법] 에듀멘 2006.04.14 5525
56 뷰렛빌더3강-[컴퓨터 강의제작방법] 에듀멘 2006.04.14 2774
55 뷰렛빌더4강-[컴퓨터강의제작방법] 에듀멘 2006.04.14 3167
54 세계사,과학 샘플입니다[400개 디자인갤러리사용] 에듀멘 2006.04.19 4402
53 다양한 색상으로 입체효과주기(그라디언트) [1] 펀에듀넷 2006.04.24 6900
52 정말급한데요. 플래시 쇼핑몰 제품 스크롤에 대해 [3] file 홍성필 2006.06.05 7222