음........강좌를 너무나 밀려서 죄송하네요.. 저번주까지 정말 바빴다는..... 월요일날 출근해서 금욜날 퇴근하고. 토욜날 출근해서 다시 일욜날 아침에 퇴근을 해서.. 겨우...겨우 프로젝트를 일단 마쳤네요...
제가 좋아하는 일이 아니면 아무리 돈을 많이 준다고 해도 그렇게 일 하지는 않겠죠?
하지만 이번 프로젝트 하면서 느낀거는 다시는 일정 급한 일은 손 안 될꺼라는.......
하도 오랜만에 쓰니....가물 가물 하네요.. 그래써 전에 제가 써놓은걸 다시..보고 왔답니다...ㅎㅎ
액션을 처음 하시는 분들은 이 substr 이라는 메쏘드를 아주 낯설게 느껴질꺼에요.. 하지만 알아 놓으면 정말 유용하게 쓰이는 메쏘드 중에 하나랍니다. 특히 나중에 배열이랑 문자가지고 장난칠때...많이 쓰이는 메쏘드 랍니다.
string.substr(시작,
길이)
시작은 부분 문자열의 첫 문자의 인덱스이고,
길이는 시작에서 시작하여 오른쪽으로 세는 길이를 말 합니다.
길이를 생략하면 시작부터 시작하여 마지막 문자까지 추출하게 됩니다. 아참 문자열의 길이는 빈 공백도 하나의 문자로 취급한답니다.
이해가시죠? 흐흐.... 이 문장 디게 오랜만에 가져 오네요.
열심히 for문을 돌리장...
번외 1) substr(-1)을 사용하게 되면 10개가 넘어 갈 때
즉 10개이상의 것을 사용하게 되면 bt0,bt1,bt2,bt3,bt4,bt5,bt6,bt7,bt8,bt9,bt10,bt11
즉 이럴때에는 뒤에서 첫번 째 꺼니깐....bt10 부터는 10을 가져오는게 아니라 0을 가져오게 되겠죠? 난감합니다.. 어떻게 해결 해야 할까요?
substr(2)라고 해주면 bt다음의 문자열을 가져오게 됩니다. 그러면 우리가 원하는 숫자 부분만 가져 올 수 있겠죠.
10개이상일때는 문자+숫자로 인스턴스네임을 정해서 문자수만큼 substr(문자수) 해 주시면 편하겠네요..
번외 2) 플래시에서의 변수의 정의..
이것도 중요한 거에요. 예를 들어 _root의 메인타임에 a = 3 이라고 정의를 내렸습니다.
그러고 나서 무비클립을 하나 만들어서. 인스턴스 네임을 box 라고 해 보아요.. 그리고 그 무비클립에 다음고 같은 액션을 줍니다.
onClipEvent(load) { trace(a) }
라고 하면 어떤 결과가 나올까요?
정답은...undefined 가 나옵니다.
자 한번 파헤쳐 보아요..
메인타임라인에 a = 3 이라고 정의를 내렸습니다. a 앞에 아무것도 적지 않았으므로 자기자신이 속한 메인타임라인이 생략되어 있습니다. a 가 속한 메이타임라이은 _root 이므로 a = 3 이라는 것의 정의가 된 부분은 _root 입니다.
무비클립에서 명령을 내려줍니다. 이 무비클립이 타임라인상에 처음으로 존재할 때 a 의 값을 출력하라고 합니다. 역시 여기도 a앞에 아무것도 적혀 있지 않습니다. a 앞에 아무것도 적지 않았으므로 자기자신이 속한 메인타임라인이 생략되어 있습니다. a 가 속한 메인타임라인은 어디일까요?
그 무비클립(box)입니다. 그래서 플래시는 a 라는 변수의 값을 box 에서 찾습니다. 있습니까?
없어요...없어... 그래서 그 값이 없다고 undefined 라고 출력 해줍니다.
그럼 a의 값을 제대로 출력 할려면 어떻게 해야 할까요?
방법1 onClipEvent(load) { trace(_root.a) }
방법2 메인타임 라인에서 정의한 a = 3 부분을 box.a = 3 이라고 정의한다.
방법3 메인타임 라인에서 정의한 a = 3 부분을 _global.a = 3 이라고 정의하고.
무비클립에 액션을 다음과 같이 해도 되겠죠? onClipEvent(load) { trace(_global.a) }
여기서 우리가 알 수 있는 것은 플래시에서의 변수를 정의할 때는 변수도 경로명을 따진다는 겁니다.
왜 이런걸 설명하나구요?
for (i=1; i<6 ; i++)
{
여기서의 this.num 이 저장된 경로를 설명 하려고 쭉~~~ 글을 쓴 거에요. 여기서의 this는 바로 이벤트 핸들러 안에서의 정의 니깐 바로 위의 이벤트 소스를 가리키는 거겠죠. 따라서 this.num 의 값은 각자의 무비클립에 저장이 되는 거에요. 즉 bn0 에 0 값이 bn1 에 1 값이 bn2 에 2 값이 저장 되지요..
이제야 이론적인 면이 끝났네요... 다음번에는 swf 를 하나 올려야 겠네요.. 아주 유명한 메뉴죠. 바네이 메뉴를 한 번 만들어 볼께요..
바네이 메뉴가 단 몇줄의 코딩으로 끝나는 지...... 한번 느껴 보시길 바랍니다.
제가 다음번 글에서 여러분들과 공유하고 싶은 부분은 바네이 메뉴 자체를 만드는 것이 아니라.
어떻게 메뉴를 만들때.. for 문과 this._name의 조화를 하면 코딩이 간단 해 질 수 있는가에 대해 고민해보자는 의도 입니다 |
'♣ 강좌 > 플래시' 카테고리의 다른 글
메뉴 만들기 (2) for문의 이해 (0) | 2006.03.25 |
---|---|
메뉴 만들기 (3) this_name의 이해 (0) | 2006.03.25 |
메뉴 만들기 (5) 부드러운 움직임의 이해 (0) | 2006.03.25 |
메뉴 만들기 (5) 부드러운 움직임의 이해 (0) | 2006.03.25 |
메뉴 만들기 (6) hitTest()의 이해...왜 hitTest()가 필요한가? (0) | 2006.03.25 |