* 본 포스트를 퍼가실 때는 상단에 아래와 같이 원본과 출처를 명시해 주세요! ^^
원본 : http://blog.missflash.com/
출처 : MissFlash.com, http ://www.missflash.com/
* 포스트의 내용중 일부가 추가/수정될 수 있으므로 최신 내용을 접하고 싶으신 분은 원본글을 이용하시기 바랍니다.
1.7 Using Mathematical Operators
Problem
시간이 지남에 따라 무비클립의 위치나 각도 등을 변경하고 있을 때
Solution
compound assignment operators나 prefix, postfix operators를 이용합니다.
Discussion
Assignment statement에서 Equal(=)의 오른쪽에는 변경을 희망하는 값이 위치하고 왼쪽에는 이 변경값이 적용될 변수나 속성이 위치합니다.
예를 들어, 아래와 같은 표현식에서 두 번째 Age는 최초의 값 16에서 1이 증가한 17의 값을 가집니다.
var Age:Number = 16; // Age = 16
Age = Age + 1; // Age = 17
그런데, 위와 같은 표현이 번거로울 때는 아래와 같은 방법으로도 동일하게 표현할 수 있습니다.
var Age:Number = 16; // Age = 16
Age += 1; // Age = 17
위 식에서 "= Age +"라는 부분이 "+="로 대체되었습니다.
위와 같이 +=, -=, *=, /= 같은 연산자를 compound assignment operators라고 합니다. compound assignment operators는 액션스크립트 3.0 뿐만 아니라 다른 프로그래밍 언어에서도 유사한 형태로 많이 사용합니다.
만약 변수의 증가값이 1이라면 다음과 같이 더욱 단순화할 수 있습니다.
Age++; // Age = 17
이와 같은 ++, -- 같은 연산자를 increment, decrement operators라고 합니다. increment, decrement operators는 다시 prefix, postfix로 나눠질 수 있습니다.
아래 식의 경우 ++Age와 같이 Age의 앞에 increment operator를 위치시켰기 때문에 prefix
operator입니다. 이 때는 먼저 increment 연산을 한 후에 Age에 값을 대입시키므로 1만큼 증가한 17이
출력됩니다.
var Age:Number = 16;
trace(++Age); // Age = 17
trace(Age); // Age = 17
하지만 아래와 같이 Age뒤에 increment operator가 위치하는 postfix operator의 경우, 먼저 현재의 Age값(16)을 대입한 후에 1을 증가시킴으로써 두 번째 trace문에서 17이 출력됩니다.
var Age:Number = 16;
trace(Age++); // Age = 16
trace(Age); // Age = 17
앞서 배운 이벤트를 이용해 일정하게 각도를 조정하고 싶으면 다음과 같은 코드를 이용하면 됩니다.
private function onEnterFrame(event:Event)
{
_sprite.rotation += 1;
}
See Also
Recipe 1.5
'Flash > ActionScript 3.0' 카테고리의 다른 글
[MissFlash의 ActionScript 3.0] 1.9 Performing Actions Conditionally (0) | 2007.04.28 |
---|---|
[MissFlash의 ActionScript 3.0] 1.8 Checking Equality or Comparing Values (0) | 2007.04.14 |
[MissFlash의 ActionScript 3.0] 1.6 Responding to Mouse and Key Events (0) | 2007.04.10 |
[MissFlash의 ActionScript 3.0] 1.5 Handling Events (0) | 2007.04.10 |
[MissFlash의 ActionScript 3.0] 1.4 How to Trace a Message (0) | 2007.04.08 |