영어로 길게 대충 써보았지만 결국 한국말로 하면
복제된 무비클립의 속성을 참조하는 방법이다.
무비를 복제할때 복제된 무비를 어떻게 접근하느냐가 문제가 된다. 복제된 무비는 "asdf"+i 이런 식으로 복제가 되기때문에 ("asdf"+i)._x=100; 이런식으로 할수도 없는 노릇이다.
이에 총 4가지의 접근방법을 보도록 하자.
배열 접근 연산자[]를 이용한 참조이다.
this["asdf"+i]는 i값에 따라 this.asdf0, this.asdf1, this.asdf2로 증가한다.
이를이용해 zxcv.this["asdf"+i]._alpha=100 이런식으로 접근이 가능하다.
ex)
var depth=0;
for(var i=0;i<10;i++)
{
this.attachMovie("asdf","asdf"+i,depth+);
this["asdf"+i]._x=random(400);
this["asdf"+i]._y=random(400);
}
복제된 무비클립의 경로인 this["asdf"+i]를 mc변수에 저장한다. mc에 this.asdf0와 같이 저장되므로 mc._x는 this.asdf0._x와 같은 의미로 쓰인다.
내가 가장 많이 쓴다. 개념도 생각하기 편리하고 무엇보다 짧다.
ex)
depth=0;
for(var i=0;i<10;i++)
{
mc=this.attachMovie("asdf","asdf"+i,depth++);
mc._x=random(400);
mc._y=random(400);
}
with선언문은 객체이름을 반복해서 입력하지 않고 같은 객체의 속성을 계속해서 참조할 수 있도록 해준다.
따라서 whit(this["asdf"+i]){...}에서 {...}안에서는 this["asdf"+i]를 따로 입력하지 않고 속성에 접근이 가능하다.
ex)
var depth=0;
for(var i=0;i<10;i++)
{
this.attachMovie("asdf","asdf"+i,depth++);
with(this["asdf"+i])
{
_x=random(400);
_y=random(400);
}
} //긴 문장을 사용할때 편하고 간단한곳에서는 오히려 더 귀찮아진다.
eval()내장함수는 문자열을 인식자(변수 또는 인스턴스네임)로 변환한다.
가장 이론적이고 안적적으로 쓰일 수 있다. 하지만 역시 두번째보다 길다...
ex)
var depth=0;
for(var i=0;i<10;i++)
{
this.attachMovie("asdf","asdf"+i,depth++);
tg=eval("this.asdf"+i);
tg._x=random(400);
tg._y=random(400);
}
복제된 무비클립의 속성을 참조하는 방법이다.
무비를 복제할때 복제된 무비를 어떻게 접근하느냐가 문제가 된다. 복제된 무비는 "asdf"+i 이런 식으로 복제가 되기때문에 ("asdf"+i)._x=100; 이런식으로 할수도 없는 노릇이다.
이에 총 4가지의 접근방법을 보도록 하자.
1. this["asdf"+i]를 이용한 참조
배열 접근 연산자[]를 이용한 참조이다.
this["asdf"+i]는 i값에 따라 this.asdf0, this.asdf1, this.asdf2로 증가한다.
이를이용해 zxcv.this["asdf"+i]._alpha=100 이런식으로 접근이 가능하다.
ex)
var depth=0;
for(var i=0;i<10;i++)
{
this.attachMovie("asdf","asdf"+i,depth+);
this["asdf"+i]._x=random(400);
this["asdf"+i]._y=random(400);
}
2. 복제된 무비클립의 경로를 변수에 저장하고 참조
복제된 무비클립의 경로인 this["asdf"+i]를 mc변수에 저장한다. mc에 this.asdf0와 같이 저장되므로 mc._x는 this.asdf0._x와 같은 의미로 쓰인다.
내가 가장 많이 쓴다. 개념도 생각하기 편리하고 무엇보다 짧다.
ex)
depth=0;
for(var i=0;i<10;i++)
{
mc=this.attachMovie("asdf","asdf"+i,depth++);
mc._x=random(400);
mc._y=random(400);
}
3. with(){...}를 이용한 참조
with선언문은 객체이름을 반복해서 입력하지 않고 같은 객체의 속성을 계속해서 참조할 수 있도록 해준다.
따라서 whit(this["asdf"+i]){...}에서 {...}안에서는 this["asdf"+i]를 따로 입력하지 않고 속성에 접근이 가능하다.
ex)
var depth=0;
for(var i=0;i<10;i++)
{
this.attachMovie("asdf","asdf"+i,depth++);
with(this["asdf"+i])
{
_x=random(400);
_y=random(400);
}
} //긴 문장을 사용할때 편하고 간단한곳에서는 오히려 더 귀찮아진다.
4. eval()내장함수로 무비클립의 경로를 완성하고 참조
eval()내장함수는 문자열을 인식자(변수 또는 인스턴스네임)로 변환한다.
가장 이론적이고 안적적으로 쓰일 수 있다. 하지만 역시 두번째보다 길다...
ex)
var depth=0;
for(var i=0;i<10;i++)
{
this.attachMovie("asdf","asdf"+i,depth++);
tg=eval("this.asdf"+i);
tg._x=random(400);
tg._y=random(400);
}
'무언가 만들기 위한 지식 > Action Script' 카테고리의 다른 글
Drag And Drop (0) | 2010.02.24 |
---|---|
플래쉬의 전역변수와 지역변수 (2) | 2010.02.24 |
Movie duplicate(무비복제) (0) | 2010.02.24 |
onEnterFrame을 이용한 Mouse Move (0) | 2010.02.24 |
플래쉬 내에서의 절대경로와 상대경로 (0) | 2010.02.22 |