자 일단 한가닥 하시는 고수분들은 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 신고

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

+ Recent posts