자 일단 한가닥 하시는 고수분들은 Backspace~, 뒤로가기, Alt + F4, Ctrl+Alt+Del~!!!


ㅎㅎ 이제 막 액숀에 맛들이신 분이나


소스 라인긴거 죽기보다 싫으신 저같은 분들을 위해서


다들 아시지만 몇가지 정리해봤습니다^^




1. if, for 문 간단하게 쓰기


보통 if문은 아래와 같이 쓰죠.


if( 조건문 )

{

    // 실행

}


근데 실행할 스크립트가 한줄일경우에는 굳이 {} 를 안써주셔도 됩니다


if( isOver == true ) //실행문;


for( var i:Number = 0 ; i < 10 ; i++ ) a++;


일케 하면 소스가 좀 짧아집니당~




2. with 문 피해가기


어떤 무비클립 안에 빈 무비클립을 만든다음 그놈을 컨트롤하기 위해서 아래와 같이 자주 쓰죠.


someMC.createEmptyMovieClip("tmp", 1);

with(someMC.tmp)

{

   //소스

}


요놈을 조금이라도 줄이려면


var tmp:MovieClip = someMC.createEmptyMovieClip("tmp", 1);

tmp._x = 0;

tmp._y = 0;

tmp._alpha = 30;


이런식으로 하면 딱 두줄 줄어듭니다 -_-+



3. if문 을 삼항식으로 대체하자


삼항식은 대입연산을 실행할때 간단한 조건문을 달아 줄 수 있습니다.


var a:Number = 2;

var b:Number = 3;

var c:Number;

if( a > b )

{

    c = a;

}

else

{

    c = b;

}


일케 쓰죠.


요놈을 줄여보면


var a:Number = 2;

var b:Number = 3;

var c:Number = ( a > b )? a : b;


이렇게 줄일수 있습니다.


() 안의 조건문이 참이면 : 의 좌측항을, 거짓이면 : 의 우측항을 대입시켜줍니다.


참, 거짓만을 가려서 "대입"할때만 쓰면 유용합니다.



4. 변수 선언 지겹다~


클래스를 사용하게 되면서 자연스레 알게 되는 것이지만


아직 클래스를 두려워하는분도 있을것이라는 생각에 씁니다 ㅎㅎ


변수 선언할때 초기값을 지정하지 않아도 될경우에는 "," 콤마를 사용해서 한줄로 선언할 수 있습니다.


var a:Number, b:String, isOver:Boolean, someFunc:Function;


이런식으로 말이죠 ㅎㅎ




5. 같은 값은 한번에 대입시키자!!


대각선으로 무비클립이 움직인다고 가정을 해봅시당~


mc._x = 10*i;

mc._y = 10*i;


라고 표현할 수 있는데 = 대입연산자는 꼭 한번만 쓸 필요는 없습니다.


대입연산자의 우측을 좌측으로 대입시켜주는 순서이기 때문에


mc._x = mc._y = 10*i;


라고 할 수 있습니다.


함수도 마찬가지죠


mc.onRollOut = mc.onRollOutside = mc.onDragOut = function()

{

     // 함수

}


라고 선언해줄 수 있습니다.




6. 이벤트를 내가 호출해보자


저도 이것을 알기전에 무지 삽질했었는데


잘 사용하면 아주 유용합니다.


mc.onRollOver = function()

{

     trace("it's over!!!");

}


mc라는 무비클립에 마우스를 가져가면 출력하라는 스크립트죠.


하지만 metooMC 라는 무비클립에 마우스를 가져가도 mc가 눌린것 처럼 보이게 하려면 어떻게 해야할까요?


metooMC.onRollOver = mc.onRollOver;


이렇게 호출해줄수 있습니다.


하지만 이경우 잘 고려하지 않으면 두 이벤트가 동시에 발생할 수 도 있기 때문에


상황을 잘 판단해서 사용하셔야 합니다.




7. 두 숫자를 바꿔보자


스카야마가 미끼를 던져준 센스입니다.


var a:Number = 13;

var b:Number = 8;


이 두숫자를 바꾸려면 어떻게 해야할까요?


야매로 배운 저같은 경우에는 임시변수를 이용해서 바꾸는 방법으로 배웠습니다.


var tmp:Number = 0;

tmp = a;

a = b;

b = tmp;


이렇게 하라고 배웠고 한동안 쭈욱 일케 썼습니다.


하지만 간단한 더하기 빼기로 쉽게 바꿀수 있습니다.


a = a+b;

b = a-b;

a = a-b;


trace(a + " / " + b) //=> 8 / 13


문자열도 가능하지만 조금 복잡하게 처리해줘야하기때문에


간단한 비트연산인 숫자형에게 가장 적합합니다.


속도도 문제될게 없기 때문에 추천하는 센스입니다^^





8. eval() 사용하기


저는 eval() 을 함수내에서 for문 돌릴때 주로 사용하는데 예를 들어


var a1:Number = 3;

var a2:Number = 5;

var a3:Number = 4;


function stepOrder()

{

    for(var i:Number = 1 ; i <= 3 ; i++)

    {

        // 어떻게 넣을까...

    }

}


저 부분에 this 를 쓰면 함수가 반환되고, 그렇다고 _root 를 쓰기엔 경로가 문제될거 같고


_parent는 아닌거 같고...


이때 eval()을 자주 사용합니다.


eval("a"+i) = i*3; // 3, 6, 9


라고 쓰면 경로를 타지 않고 해당 변수명을 참조할 수 있습니다.




===========================================================================================================


ㅎㅎ 더 있는거 같았는데 생각이 안나는군요.


며칠전에 써놨던거라 생각나면 더 추가할라그랬는데 머리가 멍하군요 ㅋㅋ


다들 도움 되셨기를 바랍니다.

  1. SSu 2009.07.03 03:26 신고

    형님, 저 이거 담아갈께요 ㅋ 프린트해야겠어요 ㅋ

어제 어떤 책을 살펴보다가


굉장히 센세이셔널한 문구를 발견했습니다.


"이미 누군가는 그 문제를 해결해 놓았습니다."


신입과 초고수를 떠나서 개발을 하는 입장에서


수없이 문제에 부딪히게 되는데


해결책을 찾지못해 끙끙대는 모습들을 흔히 겪으셨을겁니다.


하지만 이미 누군가는 그 문제에 부딪혀보았고 또 이미 해결을 해놓았습니다.


그럼 우리가 해야할 행동은 무엇일까요?


Can i solve it?


내가 이걸 해결할 수 있을까?


가 아니라


How can i find the answer?


어떻게 해답을 찾을까?


가 보다 긍정적인 방향이 아닐까 생각됩니다.


전 저 문구를 두가지로 해석을 하게 되더군요.


일단 제 개인적으로는


문제에 부딪혔을때 가장먼저 reference를 찾아봐야겠다는 생각을 했습니다.


이 문제를 해결하려고 무조건 끙끙대기보다는


이문제에 부딪혔던 다른 사람들의 이야기를 먼저 찾게 됩니다.


그들은 어떻게 해결했는지... 내가 처한 상황과 얼마나 비슷한지...


그렇게 찾다보면 뜻하지 않게 좋은 노하우들을 많이 만나볼 수 있습니다.


제가 영어를 공부하는 가장 큰 이유가 바로 이 점에 있다고도 할 수 있습니다.


그리고 두번째는


우리 플생카페에서 올라오는 수많은 질문들이 올라오는데


그 질문을 하는 사람들은 과연 이미 그것을 해결한 경험을 가지고 있는


속칭 "초고수"들에게 그들의 피같은 노하우를 듣기 위해


과연 글로써 어떤 노력을 했는지 반문을 하고 싶습니다.


초고수들은 자신들이 그 문제를 해결하기위해 얼마나 노력을 했는지를 분명히 기억하고 있기 때문에


질문자들이 올리는 글을 읽어보면


과연 이사람이 이 문제를 해결하기 위해 얼마나 노력을 했는지 바로 알 수 있습니다.


때문에 어디서 배껴온 소스를 자신이 한것인 마냥 해놔도


속칭 "초고수"들은 그냥 보면 바로 알아챕니다.




왜 속칭 초고수들이 악플을 다는지 그 이유를 깨닫지 못한다면 그건 플래시에 대한 애정조차 없다는 뜻일 겁니다.


자신이 플래시를 왜 하는지 다시한번 돌아보시기 바랍니다.



마지막으로 다시한번 말하지만


여러분이 겪는 수많은 문제점들을


"이미 수많은 사람들이 해결해 놓았습니다."


여러분은 그 해답을 과연 어떻게 구하시겠습니까?

  1. jine 2007.09.14 10:50 신고

    이런거 가슴에 지대 와닿는 말입니다 ㅎㅎ ^^

  2. 낭군 2008.05.27 15:45 신고

    이미 해결해 왔기 때문에... 고생을 했기 때문에 소중한거죠.

    그리고 또한 한쪽 마음으로는 "너도 고생한번 해봐라. 나도 이렇게 고생했는데.."

    보상심리를 자극하죠. 나만 알고 싶은 노하우 일수 도 있고..

    남이 쉽게 하려든 말든 알고 싶다거나 배우고 싶다거나 한다면 .. 정말 초고수라면 마지막 히든 카드를 제외하곤 배풀어준 답니다. ㅎㅎㅎㅎ

    • Favicon of http://wooyaggo.tistory.com 우야꼬  2008.05.27 18:00 신고

      도움을 받은 사람이 고마움을 표현하면
      더없이 기쁜데
      아무 내색없이 가버리면 정말 약오르죠.
      그런게 반복되다보면 점점 닫게되는거죠 결국.

퉁웨이 사람이라면 다 아는 수학 문제가 하나 있다.
0.9의 10승은 얼마인가 하는 문제다.
정답은 약 0.35이다.
즉, 다시말해서 1이 아닌 0.9의 완성도만을 유지할 경우
10번의 공정을 거치면 겨우 0.3 정도의 완성도밖에 달성하지 못한다는 것이다.
그러므로 99%가 아닌 100%를 목표로,
일류를 목표로 뛰어야 한다.
- 루창화의 '버려야 얻는다' (예병일의 경제노트에서 재인용)


========================================================================


0.9를 열 번 곱하면 0.349가 됩니다.
성공을 위해서는 큰 그림만 그리고
큰 것만 잘하면 된다고 생각하는 사람들이 있습니다.
큰 그림은 당연히 필요합니다.
그러나 큰 그림은 작고 구체적인 실천 계획들로 쪼개져서
하나하나 실행될 때만이 현실화 될 수 있습니다.

성공이란 수천가지 작을 일들을 제대로 하는 것,
그리고 그 가운데 많은 일을 되풀이해서 반복하는 것입니다.


========================================================================


제 성격상 100%가 아니면 실행에 잘 옮기지 못하는 고질적인 문제 때문에

항상 고민하고 갈등해 왔는데

생각의 방향을 바꾸게된 구절입니다.


눈앞의 이익때문에 한가지는 넘길 수 도 있다고 제 자신을 설득할때가 가끔 있는데

그래선 안되겠습니다.


여러분도 자신이 도달하려는 목표에 도달하기 위해서 소신껏 행동하시길 바랍니다^^

  1. jine 2007.09.14 11:00 신고

    마지막 구절에서 다시금 읽게 되는 글이네요 ^^
    아는것도 없이 요 근래 일에대한 회의가 찾아왔었는데 ㅎㅎㅎ

+ Recent posts