0, 1 이라고 쓰면 무슨 생각이 드시나요... 전산전공자라면 bit 가 생각나시겠지만, 그걸 쓰려고 하는게 아닙니다. 0 과 1의 의미를 보려는 거죠...


0이란 참 독특한 존재입니다. 어떤 수와 곱하든 결과를 0으로 만들어버립니다.

1또한 독특합니다. 어떤 수와 곱하든 결과를 곱한 수 그대로 보여줍니다.



이 두 수의 이런 특징으로 인해, 이 두 수는 범위 값을 표현하는데 자주 쓰이게 됩니다...

모든 범위는 0 에서 1까지의 수로서 표현이 가능합니다. 




as2 에서 as3 로 언어가 바뀌면서, 많은 것들이 변했는데(이제는 너무 옛날 얘기죠...) 그중에서 Movieclip 의 alpha, scale 등의 속성이 0~100 에서의 범위가 아닌 0~1 의 범위로 바뀌게 되었습니다...

이는 알게 모르게 연산의 편리함을 줬습니다. 예를 들어보죠...


mc(Movieclip ) 안에 childMC 라고 또다른 mc가 있다고 쳐보죠...

mc를 두배 크게 하려면, as2에서는

mc._xscale = 200;

라고 할겁니다. 그런데 이때 자식인 childMC 는 크기를 그대로 유지하고 싶다고 하면 어떻게 해야할까요... 반대로

childMC._xscale = 50;

을 줘야합니다

그런데 이건 미리 정해진 상수이고 원하는 스케일의 변화가 변수라, n배 커지고 싶다고 한다면

mc._xscale = n * 100;
childMC._xscale = 100 / n;


이제 1로 바꼈으니 간단합니다.

mc.scaleX = n;
childMC.scaleX = 1 / n;

식만 간단해진 것이 아니라, 곱셈연산도 사라졌기 때문에 연산도 빨라지게 됩니다. (타이핑이 줄어드는 것도 있다는!!!)


0 에서 100 또는 1이 아닌 그 어떤 수 n 이였다면, 어떤 비율을 곱하는데 있어서 항상 곱셈연산이 따르게 됩니다만, 1은 결과값이 그 수 그대로이기 때문에 수학식으로는 1을 곱하는 것이 맞더라고 결과적으로 그 수를 그대로 써주면 되는겁니다.


그리고 이런 장점은 확장성에서도 나타납니다.

플래시는 argb 칼라를 씁니다 (alpha + red + green + blue)

현재는 0xFFFFFFFF 이런 16진수 체계를 사용하지만, 만약 앞으로 플래시가 각각의 칼라값을 더 다양하게 표현할 수 있다고 해보죠... r = 0xFF 가 아닌 0xFFFF 까지 표현할 수 있다고요...
그럼 플래시의 색재현력은 더욱더 뚜렷해질 것이고, 섬세한 그라데이션을 표현할 수 있게 되겠죠...

그런 업데이트가 일어나면 우리는 색 값을 모두 바꿔줘야 할겁니다...

하지만 red 값을 0~1 로 표현한다면,0 ~ 0xFFFFFFFFFFFFFFFFF 로 레드값의 범위가 변한다고 해도 저희가 원하는 색상대로 표현이 될겁니다.

범위에 대한 비율값으로 표현을 했기 때문입니다.


암튼 이런 특징은 다양하게 활용할 수 있습니다.

앞서 말한 스크롤에도 위치값이 아닌 0~1 의 범위로 값이 떨어지게 만들면, 가로스크롤의 공식을 세로 스크롤에도 적용할 수도 있죠... 가로 세로 만들때마다 항등식을 세로 만들어 줄게 아니라 범위값에 대한 비율을 던져주도록한다면 말이죠...


암튼 머리가 나쁘면, 손발이 고생합니다... 간단한 산수나 수학을 조금 알아두면 참 편해진다니깐요... 
Posted by 미나토
TAG ,

댓글을 달아 주세요