Flash Lite 2 |
|||
| Flash Lite 2.x ActionScript 언어 참조 설명서 > ActionScript 언어 요소 > 연산자 > + 더하기 연산자 | |||
expression1 + expression2
숫자 표현식을 더하거나 문자열을 결합 또는 연결합니다. 한 표현식이 문자열이면 다른 표현식도 모두 문자열로 변환된 후 연결됩니다. 두 표현식이 정수인 경우 그 합도 정수이며, 한 표현식 또는 두 표현식이 모두 부동 소수점 숫자인 경우 그 합도 부동 소수점 숫자입니다.
참고: Flash Lite 2.0에서는 더하기 연산자(+)를 사용하여 숫자 표현식을 더하고 문자열을 연결할 수 있습니다. 반면에 Flash Lite 1.x에서는 더하기 연산자(+)를 사용하여 숫자 표현식을 더하는 연산(예: var1 = 1 + 2 // output: 3)만 수행할 수 있습니다. Flash Lite 1.x의 경우 문자열을 연결하려면 add 연산자를 사용해야 합니다.
지원 버전: ActionScript 1.0, Flash Lite 1.0 - Flash 4에서는 +가 수치 연산자로만 사용됩니다. 그러나 Flash Player 5 이상에서는 매개 변수의 데이터 유형에 따라 +가 수치 연산자 또는 문자열 연결 연산자로 사용됩니다. Flash 5 이상의 제작 환경으로 가져온 Flash 4 파일은 데이터 유형의 무결성을 유지하기 위해 자동으로 변환됩니다. 다음 예제에서는 숫자 품질 비교가 포함된 Flash 4 파일의 변환 과정을 보여 줍니다.
Flash 4 파일: x + y
변환된 Flash 5 이상 파일: Number(x) + Number(y)
expression1 - 숫자 또는 문자열입니다.
expression2 - 숫자 또는 문자열입니다.
Object - 문자열, 정수 또는 부동 소수점 숫자입니다.
구문 1: 다음은 두 문자열을 연결하여 결과를 출력 패널에 표시하는 예제입니다.
var name:String = "Cola"; var instrument:String = "Drums"; trace(name + " plays " + instrument); // 출력: Cola plays Drums
참고: Flash Lite 1.x에서는 더하기 연산자(+)를 사용하여 문자열을 연결할 수 없습니다. Flash Lite 1.x의 경우 문자열을 연결하려면 add 연산자를 사용해야 합니다.
구문 2: 이 명령문은 정수 2와 3을 더하고 결과 값인 정수 5를 출력 패널에 표시합니다.
trace(2 + 3); // 출력: 5
이 명령문은 부동 소수점 숫자 2.5와 3.25를 더하고 결과 값인 부동 소수점 5.75를 출력 패널에 표시합니다.
trace(2.5 + 3.25); // 출력: 5.75
구문 3: 동적 텍스트 필드 및 입력 텍스트 필드와 관련된 변수의 데이터 유형은 String입니다. 다음 예제에서 deposit 변수는 스테이지의 입력 텍스트 필드입니다. 사용자가 예금액을 입력하면 스크립트에서는 deposit을 oldBalance에 추가합니다. 그러나 deposit의 데이터 유형이 String이므로 스크립트에서는 변수 값을 더하지 않고 서로 연결하여 하나의 문자열을 구성합니다.
var oldBalance:Number = 1345.23; var currentBalance = deposit_txt.text + oldBalance; trace(currentBalance);
예를 들어, 사용자가 deposit 텍스트 필드에 475를 입력하면 trace() 함수를 통해 4751345.23이라는 값이 출력 패널에 전달됩니다. 이 문제를 해결하려면 다음과 같이 Number() 함수를 사용하여 문자열을 숫자로 변환해야 합니다.
var oldBalance:Number = 1345.23; var currentBalance:Number = Number(deposit_txt.text) + oldBalance; trace(currentBalance);
다음 예제에서는 문자열 표현식의 오른쪽에 있는 수식 합계가 계산되지 않는 이유를 보여 줍니다.
var a:String = 3 + 10 + "asdf"; trace(a); // 13asdf var b:String = "asdf" + 3 + 10; trace(b); // asdf310