교컴 키우기 자발적 후원 |
- 1가입인사
- 2슈링클스(Shrinkles) 열쇠고리(keyring) 제작 학습지
- 3초대! 『기준 없이』 출간 기념 스티븐 샤비로 강연 (2024년 4월 20일 토 오전 10시)
- 4그림으로 공부하는 과학사
- 5페임랩(Fame Lab) 학습지
- 6새 책! 『육식, 노예제, 성별위계를 거부한 생태적 저항의 화신, 벤저민 레이』 글·그림 데이비드 레스터, 마커스 레디커·폴 불 엮음, 김정연 옮김, 신은주 감수
- 7마음 속 우편함
- 8새 책! 『죽음의 왕, 대서양의 해적들』 글·그림 데이비드 레스터, 글 마커스 레디커, 폴 불 엮음, 김정연 옮김, 신은주 감수
- 9스무가지 조언
- 10사랑의 다른 말
|
span> |
교컴 포토갤러리 |
플래시수업
마스크와 물방울처리
마스크, 가이드라인, 프레임라벨이동, 액션, 랜덤함수처리, 무비복사 등 적어도
7가지를 이해하여야 나올수 있는 장면입니다.
초보자님들은 무조건 어렵다 하지 마시고 하나둘씩 무비를 복사해다 응용해보고
조금씩 고쳐 봄으로서 서서히 액션에 대한 두렴움을 없애고 자신감을 얻게 될 것입니다.
액션에 대해서는 기존 스크립언어라도 경험해 본 사람은 쉽게 접근할 수 있습니다만
언어에 대한 감각이 없는 분은 꾸준히 열러보고 고쳐봄으로써 자신도 모르게 액션을
터득하게 될 것입니다.
==========================================================
duplicateMovieClip
액션 중에서 많이 사용되고 있는 것 중의 하나가 바로 duplicateMovieClip 액션이다.
용량도 줄일 수 있을 뿐만 아니라 다양한 효과를 쉽게 만들 수 있기 때문이다.
이 기회에 잘 배워서 잘 응용하기 바란다.
duplicateMovieClip을 쓰려면 우선 Movie Clip이 하나 필요하다.
Flash를 열고 작은 네모를 그리고 Movie Clip으로 만든 후 Instance Name에 box라고 쓰자.
그리고 버튼을 하나 만든 후 그 버튼에 다음과 같은 코드를 입력한다.
on (release) {
duplicateMovieClip ("bol", "bol2", 1);
}
bol는 원래 Movie Clip의 Instance Name이고,
bol2는 duplicated될 새로운 Movie Clip의 Instance Name이다.
1은 duplicated된 Movie Clip이 위치할 level 값이다.
Ctrl Enter로 Publish하면 결과를 알 수 있다.
근데 버튼을 눌러도 아무 변화가 없다고 느끼는 사람도 있을지 모르겠다.
그것은 같은 위치에 복사되었기 때문에 변화가 없는 것처럼 보이는 것이다.
Movie Clip 'bol'의 alpha값은 30 % 정도로 하면 변화를 느낄 수 있을 것이다.
이제는 앞에서 배운 setProperty를 사용하여 원하는 위치에 복사를 시켜보자.
on (release) {
duplicateMovieClip("bol", "bol2", 1);
setProperty ("bol2", _x, "200");
}
위 코드대로 하면 bol는 x축으로 200 픽셀만큼 이동하여 복사가 된다.
자, 아래 Movie에서 버튼을 눌러보자.
누를 때마다 30 개의 bol들이 여기 저기 다른 형태로 나타나게 된다.
이것도 역시 그리 복잡하지는 않다.
일단 random( ); 액션을 알아야 하는데,
random은 말 그대로 random 다음에 나오는 숫자의 범위 안에서 임의로 출력을 하는 것이다.
그럼, Button에 입력된 코드를 직접 살펴보자.
on (release) {
count = 1;
while (count<31) {
duplicateMovieClip("bol","bol"+count, count);
setProperty ( "bol"+count,_x, random(400) );
setProperty ( "bol"+count,_y, random(100) );
setProperty ( "bol"+count,_xscale, random(150) );
setProperty ( "bol"+count,_yscale, random(150) );
setProperty ( "bol"+count,_alpha, random(100) );
count += 1;
}
}
코드를 살펴보면 count라는 변수가 1부터 30에 도달할 때까지 복사하라는 명령이다.
while(조건){ }은 반복할 때 사용하는 명령이다.
아래쪽에 있는 count += 1;은 변수 count를 1씩 증가시키라는 것이다.
결국 변수 count가 1부터 30에 도달할 때까지 { }안의 명령을 반복하라는 것이다.
duplicateMovieClip("bol","bol"+count, count);
이 명령은 "bol"라는 Instance Name을 가진 Movie Clip을 복사하라는 것인데,
괄호 안에 나온 것을 차례대로 보면
처음에 나온 "bol"는 복사할 Movie Clip의 Instance Name,
두 번째 나온 "bol"+count는 Movie Clip이 복사가 됐을 때
그 애에게도 붙을 Instance Name이다.
세 번째 나온 count는 새로 복사된 Movie Clip이 위치할 level 값이다.
근데 두 번째에서 +count는 뭘까?
처음에 변수로 count를 지정해 주었다.
물론 count라는 단어말고 특별히 좋아하는 단어가 있다면 그것을 써도 된다.
다음의 상자 안에 있는 내용을 잘 읽어보자.
☆ 여기서 잠깐만! - while( )과 변수
만일 Movie Clip을 한 번만 복사한다면 굳이 while( )과 변수를 쓸 필요가 없다.
그냥 duplicateMovieClip("bol","bol1",1 );
라고 쓰면 그만이다. 즉, Level 1에 bol를 복사해서 bol1이라는 이름의 Movie Clip을
만들라는 명령이다.
그럼 만약 5 개를 복사하게 되면 어떻게 될까?
duplicateMovieClip("bol","bol1",1 );
duplicateMovieClip("bol","bol2",2 );
duplicateMovieClip("bol","bol3",3 );
duplicateMovieClip("bol","bol4",4 );
duplicateMovieClip("bol","bol5",5 );
이렇게 써야 할 것이다. 왜 level을 다르게 하냐고 묻는다면...?
같은 level로 지정해 주면 그 level에 먼저 있었던 것들은 모두 사라지고
새로 지정해 준 것만 남게 되기 때문이다.
그럼 30 개를 복사해야 하는데 방금 한 것처럼 30 줄을 써야 할 필요가 없다.
그래서 위 예제와 같은 코드나 나온 것이다.
1부터 30까지 계속 1 씩 올라가야 하므로 변수 count가 필요하게 된 것이다.
그 밑에 있는 random이 포함된 명령은 복사되는 Movie Clip의 속성을 지정해 주는 것인데,
x좌표, y좌표, xscale, yscale, alpha 값을 주어진 숫자 안에서
임의로(random하게) 출력하라는 것이다.
이제는 버튼에 액션을 주지 말고 Layer에 액션을 입력해 보자.
버튼에서는 on(release){ }라는 코드가 들어가야 하지만 Layer에서는 필요가 없다.
따라서 위의 코드에서 on(release){ } 부분만 삭제하고 나머지를 frame에 입력하면 된다.
- effect.swf (0B) (429)
- effect.fla (0B) (421)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
[활용] 수업 활용 감동 플래시 150편 [37+1] | 함영기 | 163177 | 2003.08.21 18:57 | |
247 | [플래시강좌] [mx2004]이젠 글자모션 신경끝! | 8175 | 2737 | 2004.03.28 19:01 |
246 | [플래시수업] [mx2004] ActionScript으로 풍차만들기 | 8175 | 2411 | 2004.03.28 09:42 |
245 | [플래시수업] [mx2004] 진자운동 | 8175 | 2673 | 2004.03.28 09:32 |
244 | [기타플래시] 렌즈 플레어 (flare 섬광) 효과 | 8175 | 2927 | 2004.03.24 23:22 |
243 | [기타플래시] 물리에 쓰이는 분수 | 8175 | 2222 | 2004.03.21 17:55 |
242 | [기타플래시] [유틸] 마음대로 그려보는 플래시 스케치북 [4] | 함영기 | 5772 | 2004.03.04 08:18 |
241 | [기타플래시] RE:재미있는 플래시 스케치북 뜯어보자! | 유춘모 | 1835 | 2004.10.01 21:58 |
240 | [플래시강좌] 웹페이지 인쇄시 프린터 제어하기 | 8175 | 5930 | 2004.02.29 13:04 |
239 | [기타플래시] 서영은 [졸업]과 우리반 아이들 | 허재영 | 3373 | 2004.02.28 21:02 |
238 | [플래시강좌] 최고의 UI Components활용 플래시웹에디터 | 8175 | 2404 | 2004.02.24 13:55 |
237 | [플래시강좌] RE:최고의 UI Components활용 플래시웹에디터 | 조종미 | 1884 | 2004.08.24 11:44 |
236 | [기타플래시] 지구 주위를 회전하는 광고(eduict.org)글자 | 8175 | 2501 | 2004.02.22 21:52 |
235 | [기타플래시] 플래시 노래(강아지똥)입니다. | 박병건 | 4254 | 2004.02.22 10:48 |
234 | [플래시수업] 움직이는 사람 모형 | 8175 | 3620 | 2004.02.21 20:38 |
233 | [기타플래시] jpg이미지를 불러오는 초간단 그림책 만들기 | 8175 | 2707 | 2004.02.15 14:28 |
232 | [플래시강좌] [강좌]플래시로 cd앨범 만들기 및 방법[2/21수정] | 8175 | 3420 | 2004.02.13 20:25 |
231 | [플래시강좌] 초간단 슬라이드식 JPG 이미지뷰어 | 8175 | 2987 | 2004.02.05 23:52 |
230 | [플래시유틸] 플래시효과음모음-1 | 8175 | 5754 | 2004.01.30 21:51 |
>> | [기타플래시] 마스크와 물방울처리 | 8175 | 2664 | 2004.01.30 18:30 |
228 | [플래시강좌] [부탁] 샘들 플래시방 많은 참여를 | 8175 | 1966 | 2004.01.29 10:49 |