위쪽 input창의 x, y 입력창에 숫자를 입력하고 중앙의
Swap 버튼을 클릭하면 바뀐 이후의 x, y값이 아래 output창에 표시된다.
간만에 C++에서 포인터와 주소를 이용해 두 숫자를 받아 바꾼 뒤 돌려주는 함수 만들기를 따라 해보곤 문득 포인터가
없는 플래시 ActionScript에서는동일한 기능의 함수를 어떻게 만들까 궁금해져 Flash CS4+ActionScript
3.0으로 테스트해 보다.
Stackoverflow.com의 http://stackoverflow.com/questions/5499601/actionscript-3-0-swap
게시물을 보고 해결책을 알게 됐다.
방법은 변수를 Object 혹은 Movieclip 형태로 생성한 뒤 그 하위에 만든 속성변수(아님 멤버변수?
이걸 뭐라 칭하는지 모르겠다)에 숫자들을 대입하거나 바꿔주는 편법을 쓰는 것.
16/9/2 금 |
C++에서 숫자바꾸기 |
#include <iostream>
#include <string>
using namespace std;
void swap2num(int* a, int* b);
int main(){
int x, y;
string t = "바꾸기";
cout << "바꿀 2 숫자 중 첫번째를 입력: ";
cin >> x;
cout << "바꿀 2 숫자 중 2번째를 입력: ";
cin >> y;
printf("%s 전 x: %d, y: %d \n", t.c_str(), x, y);
swap2num(&x, &y);
printf("%s 뒤 x: %d, y: %d \n", t.c_str(), x, y);
}
void swap2num(int* a, int* b){
int temp = *a;
*a = *b;
*b = temp;
}
|
Flash+Actionscript 3.0에서 숫자바꾸기 |
//화면에 숫자 입력용으로 'input01', 'input02'란 명칭의 인풋 텍스트 2개와 출력용 'output01', 'output02' 명칭의 다이나믹 텍스트 2개, 'swapBtn'이란 명칭의 버튼용 무비클립을 만들어 두다.
var x1:Object = new Object;
var y1:Object = new Object;
function init(){
x1.num = y1.num = 0;
swapBtn.addEventListener(MouseEvent.CLICK, swapClick);
swapBtn.addEventListener(MouseEvent.MOUSE_OVER, swapOver);
swapBtn.addEventListener(MouseEvent.MOUSE_OUT, swapOut);
}
function swapClick(e:MouseEvent){
x1.num = int(input01.text);
y1.num = int(input02.text);
swaps(x1, y1);
output01.text = x1.num;
output02.text = y1.num;
}
function swapOver(e:MouseEvent){ swapBtn.gotoAndStop(2);}
function swapOut(e:MouseEvent){ swapBtn.gotoAndStop(1);}
function swaps(a, b){
var temp = a.num;
a.num = b.num;
b.num = temp;
}
init();
|
|