1 자습서 플래시Flash 강좌,[플래시][액션스크립트] ActionScript Statements Tue May 24, 2011 5:47 am
Admin
Admin
ActionScript-x Statements
■ Event Handler Action / Function ------------------------------------------
버튼 액션의 기본 형태
----------------------------------------------------------------------------------------
on(이벤트) {
실행할 액션;
}
----------------------------------------------------------------------------------------
무비클립 액션의 기본 형태
----------------------------------------------------------------------------------------
onClipEvent(이벤트) {
실행할 액션;
}
----------------------------------------------------------------------------------------
사용자 정의 함수를 선언하는 형식
----------------------------------------------------------------------------------------
function 함수명 (매개변수) {
실행할 액션;
return 반환값;
}
----------------------------------------------------------------------------------------
■ Call-Back 함수 -----------------------------------------------------------
----------------------------------------------------------------------------------------
인스턴스경로.이벤트핸들러메서드 = function() {
실행할 액션;
};
오브젝트.메서드명 = function (매개변수) {
실행할 액션;
};
----------------------------------------------------------------------------------------
전담 오브젝트 생성 (function과 prototype 예약어를 이용)
----------------------------------------------------------------------------------------
// 오브젝트(클래스) 선언
function Obj(width, height) {
this.width = width;
this.height = height;
}
// 메서드 추가
Obj.prototype.area = function() {
return this.width * this.height;
}
// 인스턴스 만들기
objIns1 = new Obj(20, 50);
----------------------------------------------------------------------------------------
■ Conditions / Loops ------------------------------------------------------
if(조건식) { } else if(조건식) { } else { }
----------------------------------------------------------------------------------------
// 만일 변수 theTime이 100 이상이면 프레임을 이동
if(theTime>=100){
this.gotoAndStop("GameOver");
}
----------------------------------------------------------------------------------------
switch(표현식) { case 상수식: 액션; break; default: 액션; break; }
----------------------------------------------------------------------------------------
// <Enter>키를 누르면 op 값에 따라 연산을 한다
on (press, keyPress "<Enter>") {
switch (op) {
case "+" :
c = Number(a) + Number(b);
break;
case "-" :
c = Number(a) - Number(b);
break;
case "*" :
c = Number(a) * Number(b);
break;
case "/" :
c = Number(a) / Number(b);
break;
default :
c = "Again";
break;
}
}
----------------------------------------------------------------------------------------
for(초기화;조건;증감) { 실행코드; }
----------------------------------------------------------------------------------------
// 100에서 0까지의 수치가 들어 있는 배열을 만든다
theArray = [];
for(i=100;i>=0;i--){
theArray.push(i);
}
// _root.ufo1~_root.ufo5 를 모두 정지한다
for(i=1;i<=5;i++){
eval!("_root.ufo"+i).stop();
}
----------------------------------------------------------------------------------------
for(변수 in 오브젝트) { 변수 사용한 코드; }
----------------------------------------------------------------------------------------
// 구조체의 내용을 츨력 윈도에 표시한다
lukeObj = { dog:"해피",sex:"수컷",color:"검정"};
for (pName in lukeObj){
trace(pName + " : " + lukeObj[pName];
}
/* -- 출력은 아래와 같이 된다
dog : 해피
sex : 수컷
color : 검정
*/
// 자기 안에 있는 MovieClip 오브젝트를 살핀다
for(myChildName in this){
if(typeof(this[myChildName]) == "movieclip") {
trace(myChildName);
}
}
// 자기 안에 있는 MovieClip 오브젝트 전체에 메소드를 보낸다
for(myChildName in this){
if(typeof(this[myChildName]) == "movieclip") {
this[myChildName].stop();
}
}
----------------------------------------------------------------------------------------
while(조건) { 실행코드; 변수증감; }
----------------------------------------------------------------------------------------
// 조건식 안의 값이 참(true)일 때만 { } 안의 코드가 반복 실행된다.
foo = 0;
while(foo < 5) {
duplicateMovieClip("_root.flower", "mc" + foo, foo);
setProperty("mc" + foo, _x, random(275));
setProperty("mc" + foo, _y, random(275));
setProperty("mc" + foo, _alpha, random(275));
setProperty("mc" + foo, _xscale, random(200));
setProperty("mc" + foo, _yscale, random(200));
foo++;
}
----------------------------------------------------------------------------------------
do { 실행코드; 변수증감; } while(조건);
----------------------------------------------------------------------------------------
// { } 안의 코드를 최소한 1번은 실행한다
----------------------------------------------------------------------------------------
break;
----------------------------------------------------------------------------------------
// 루프를 강제로 빠져나온다
// 중첩되어 있는 경우 맨 안쪽의 것만 빠져나온다
// 무한 반복 루프에서 빠져 나옵니다
i = 0;
while (true) {
if (i >= 100) {
break;
}
i++;
}
// 배열 안을 검색한다
function findPos (theArray, theVal!ue) {
var theLength = theArray.length;
var findIndex = -1;
for (i=0; i<theLength; i++) {
if (theArray[i] == theVal!ue) {
findIndex = i;
break; // theVal!ue 가 발견되면 반복을 중단한다
}
}
return findIndex; // 함수가 반환하는 값을 지정합니다
}
findPos(["a","b","c","d"], "c"); // -- findIndex 값은 2 가 된다
----------------------------------------------------------------------------------------
continue;
----------------------------------------------------------------------------------------
// break가 그 반복에서 완전히 빠지는 데 대해 continue는 그 이후의 처리를 1회 skip하여 다음의 반복을 처음부터 시작한다
// 0부터 100까지의 짝수를 배열화한다
theArray = [];
for(i=0; i<=100; i++){
if (i%2 != 0) { // 2로 나눈 나머지가 0 이 아니면 나머지 루프 부분을 건너뛰고 for문 처음으로 이동
continue;
}
theArray.push(i)
}
// -- theArray 는 [0,2,4,6,8, ... ,100] 이 된다
----------------------------------------------------------------------------------------]
■ Event Handler Action / Function ------------------------------------------
버튼 액션의 기본 형태
----------------------------------------------------------------------------------------
on(이벤트) {
실행할 액션;
}
----------------------------------------------------------------------------------------
무비클립 액션의 기본 형태
----------------------------------------------------------------------------------------
onClipEvent(이벤트) {
실행할 액션;
}
----------------------------------------------------------------------------------------
사용자 정의 함수를 선언하는 형식
----------------------------------------------------------------------------------------
function 함수명 (매개변수) {
실행할 액션;
return 반환값;
}
----------------------------------------------------------------------------------------
■ Call-Back 함수 -----------------------------------------------------------
----------------------------------------------------------------------------------------
인스턴스경로.이벤트핸들러메서드 = function() {
실행할 액션;
};
오브젝트.메서드명 = function (매개변수) {
실행할 액션;
};
----------------------------------------------------------------------------------------
전담 오브젝트 생성 (function과 prototype 예약어를 이용)
----------------------------------------------------------------------------------------
// 오브젝트(클래스) 선언
function Obj(width, height) {
this.width = width;
this.height = height;
}
// 메서드 추가
Obj.prototype.area = function() {
return this.width * this.height;
}
// 인스턴스 만들기
objIns1 = new Obj(20, 50);
----------------------------------------------------------------------------------------
■ Conditions / Loops ------------------------------------------------------
if(조건식) { } else if(조건식) { } else { }
----------------------------------------------------------------------------------------
// 만일 변수 theTime이 100 이상이면 프레임을 이동
if(theTime>=100){
this.gotoAndStop("GameOver");
}
----------------------------------------------------------------------------------------
switch(표현식) { case 상수식: 액션; break; default: 액션; break; }
----------------------------------------------------------------------------------------
// <Enter>키를 누르면 op 값에 따라 연산을 한다
on (press, keyPress "<Enter>") {
switch (op) {
case "+" :
c = Number(a) + Number(b);
break;
case "-" :
c = Number(a) - Number(b);
break;
case "*" :
c = Number(a) * Number(b);
break;
case "/" :
c = Number(a) / Number(b);
break;
default :
c = "Again";
break;
}
}
----------------------------------------------------------------------------------------
for(초기화;조건;증감) { 실행코드; }
----------------------------------------------------------------------------------------
// 100에서 0까지의 수치가 들어 있는 배열을 만든다
theArray = [];
for(i=100;i>=0;i--){
theArray.push(i);
}
// _root.ufo1~_root.ufo5 를 모두 정지한다
for(i=1;i<=5;i++){
eval!("_root.ufo"+i).stop();
}
----------------------------------------------------------------------------------------
for(변수 in 오브젝트) { 변수 사용한 코드; }
----------------------------------------------------------------------------------------
// 구조체의 내용을 츨력 윈도에 표시한다
lukeObj = { dog:"해피",sex:"수컷",color:"검정"};
for (pName in lukeObj){
trace(pName + " : " + lukeObj[pName];
}
/* -- 출력은 아래와 같이 된다
dog : 해피
sex : 수컷
color : 검정
*/
// 자기 안에 있는 MovieClip 오브젝트를 살핀다
for(myChildName in this){
if(typeof(this[myChildName]) == "movieclip") {
trace(myChildName);
}
}
// 자기 안에 있는 MovieClip 오브젝트 전체에 메소드를 보낸다
for(myChildName in this){
if(typeof(this[myChildName]) == "movieclip") {
this[myChildName].stop();
}
}
----------------------------------------------------------------------------------------
while(조건) { 실행코드; 변수증감; }
----------------------------------------------------------------------------------------
// 조건식 안의 값이 참(true)일 때만 { } 안의 코드가 반복 실행된다.
foo = 0;
while(foo < 5) {
duplicateMovieClip("_root.flower", "mc" + foo, foo);
setProperty("mc" + foo, _x, random(275));
setProperty("mc" + foo, _y, random(275));
setProperty("mc" + foo, _alpha, random(275));
setProperty("mc" + foo, _xscale, random(200));
setProperty("mc" + foo, _yscale, random(200));
foo++;
}
----------------------------------------------------------------------------------------
do { 실행코드; 변수증감; } while(조건);
----------------------------------------------------------------------------------------
// { } 안의 코드를 최소한 1번은 실행한다
----------------------------------------------------------------------------------------
break;
----------------------------------------------------------------------------------------
// 루프를 강제로 빠져나온다
// 중첩되어 있는 경우 맨 안쪽의 것만 빠져나온다
// 무한 반복 루프에서 빠져 나옵니다
i = 0;
while (true) {
if (i >= 100) {
break;
}
i++;
}
// 배열 안을 검색한다
function findPos (theArray, theVal!ue) {
var theLength = theArray.length;
var findIndex = -1;
for (i=0; i<theLength; i++) {
if (theArray[i] == theVal!ue) {
findIndex = i;
break; // theVal!ue 가 발견되면 반복을 중단한다
}
}
return findIndex; // 함수가 반환하는 값을 지정합니다
}
findPos(["a","b","c","d"], "c"); // -- findIndex 값은 2 가 된다
----------------------------------------------------------------------------------------
continue;
----------------------------------------------------------------------------------------
// break가 그 반복에서 완전히 빠지는 데 대해 continue는 그 이후의 처리를 1회 skip하여 다음의 반복을 처음부터 시작한다
// 0부터 100까지의 짝수를 배열화한다
theArray = [];
for(i=0; i<=100; i++){
if (i%2 != 0) { // 2로 나눈 나머지가 0 이 아니면 나머지 루프 부분을 건너뛰고 for문 처음으로 이동
continue;
}
theArray.push(i)
}
// -- theArray 는 [0,2,4,6,8, ... ,100] 이 된다
----------------------------------------------------------------------------------------]