묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
급한질문!! 플래쉬액션 회전운동에 관한 질문입니다.
2004.12.29 13:23
http://iventure.anyang.ac.kr/~kamiia/cyworld/회전운동.jpg
이렇게 뺑뺑도는 메뉴가 있습니다.
마우스를 오른쪽으로 가져가면 오른쪽으로 돌며 더욱 빨라지고,
마우스를 왼쪾으로 가져가면 왼쪽으로 돌며 더욱 빨라집니다.
마우스를 정 가운데 두면 서서히 멈춥니다.
여기서제가 원하는것은!!
마우스를 메뉴 하나에 롤오버 했을때 회전운동이 서서히 멈추며,
선택된 메뉴가 커지는 것입니다.
그 메뉴를 클릭하면 다른 페이지로 이동하구요,
메뉴에서 마우스를 떄면 또다시 서서히 돌기시작하구요,
아래와 같은 액션을 사용하였습니다.
어떻게 해야할까요?
도와주세요~~~~
===========================================================================================
R = 300;
num = 8;
default_scale = 50;
theta = 360/num;
speed = 1;
y_cont = -5
_root.onEnterFrame = function() {
// 회전체의 위치 재 정렬
distance = _root._xmouse-this.mbar._x;
rotate += speed*distance/100;
k = 1;
while (k<=num) {
this.mbar["mm" add k].X = Math.sin(Math.PI/180*((k-1)*theta+rotate));
this.mbar["mm" add k].Z = Math.cos(Math.PI/180*((k-1)*theta+rotate));
this.mbar["mm" add k].W = Math.cos(Math.PI/180*((k-1)*theta+rotate));
flip = this.mbar["mm" add k].Z;
if (flip>=0) {
this.mbar["mm" add k].gotoAndPlay(1);
} else {
this.mbar["mm" add k].gotoAndPlay(2);
}
this.mbar["mm" add k]._x = R*this.mbar["mm" add k].X;
this.mbar["mm" add k]._y = R*this.mbar["mm" add k].Z/y_cont;
scale = default_scale+(100-default_scale)*this.mbar["mm" add k].Z;
width = Math.abs(this.mbar["mm" add k].W);
this.mbar["mm" add k]._xscale = scale*width;
this.mbar["mm" add k]._yscale = scale;
this.mbar["mm" add k]._alpha = scale;
k++;
}
};
=======================================================================================================
이렇게 뺑뺑도는 메뉴가 있습니다.
마우스를 오른쪽으로 가져가면 오른쪽으로 돌며 더욱 빨라지고,
마우스를 왼쪾으로 가져가면 왼쪽으로 돌며 더욱 빨라집니다.
마우스를 정 가운데 두면 서서히 멈춥니다.
여기서제가 원하는것은!!
마우스를 메뉴 하나에 롤오버 했을때 회전운동이 서서히 멈추며,
선택된 메뉴가 커지는 것입니다.
그 메뉴를 클릭하면 다른 페이지로 이동하구요,
메뉴에서 마우스를 떄면 또다시 서서히 돌기시작하구요,
아래와 같은 액션을 사용하였습니다.
어떻게 해야할까요?
도와주세요~~~~
===========================================================================================
R = 300;
num = 8;
default_scale = 50;
theta = 360/num;
speed = 1;
y_cont = -5
_root.onEnterFrame = function() {
// 회전체의 위치 재 정렬
distance = _root._xmouse-this.mbar._x;
rotate += speed*distance/100;
k = 1;
while (k<=num) {
this.mbar["mm" add k].X = Math.sin(Math.PI/180*((k-1)*theta+rotate));
this.mbar["mm" add k].Z = Math.cos(Math.PI/180*((k-1)*theta+rotate));
this.mbar["mm" add k].W = Math.cos(Math.PI/180*((k-1)*theta+rotate));
flip = this.mbar["mm" add k].Z;
if (flip>=0) {
this.mbar["mm" add k].gotoAndPlay(1);
} else {
this.mbar["mm" add k].gotoAndPlay(2);
}
this.mbar["mm" add k]._x = R*this.mbar["mm" add k].X;
this.mbar["mm" add k]._y = R*this.mbar["mm" add k].Z/y_cont;
scale = default_scale+(100-default_scale)*this.mbar["mm" add k].Z;
width = Math.abs(this.mbar["mm" add k].W);
this.mbar["mm" add k]._xscale = scale*width;
this.mbar["mm" add k]._yscale = scale;
this.mbar["mm" add k]._alpha = scale;
k++;
}
};
=======================================================================================================
댓글 2
-
박원용
2004.12.29 15:49
-
이선미
2004.12.29 18:41
on (rollOver) {
m1._xscale =110
m1._yscale =110;
}
이걸로 롤오버 햇을때 커지도록 했습니다.
근데 이렇게 액션을 쓰면서 서서히 커지게 혹은 작아지게 할수는 없나요?
1~5프레임까지는 커지고, 6~10프레임 까지는 작아지는 무비클립을 만들고,
5프레임과 10프레임엔 각각 stop을 걸어놓구요,
롤오버 했을땐 1프레임으로 가라. 아웃했을땐 6프레임으로 가라.
이런 방법을 쓰고싶은데요,,
씬에서 이우뤄지는게 아니라 몇단계의 무비클립속에서 이루워 져서
gotoandPlay할때 _root 로부터 경로를 어케 잡아줘야할지 도무지 모르겠어요,,
혹시 경로를 쭈욱 써주는게 아니라 정확하게 움직임을 주려는 무비클립의 인스턴스네임만 써주는건가요?
이것저것 해봤는데,, 안돼네요,,
이 방법좀 갈켜주세요~
1. 회전운동이 서서히 멈추는 사항
>> 화면중앙에 커서가 있다면 당연히 서서히 멈추게 되겠죠. 아마 중앙이 아닌 곳에 있는 버튼에 커서가 위치했을 경우를 말씀하시는것 같은데, 이건 할수야 있겠지만 안하는게 낫습니다.
왜냐면, 커서가 살짝 스치기만 해도 멈춰버리기 때문에 작동이 매우 귀찮아지거든요.
2. 마우스Over시 버튼이 커지는 사항
>> 그냥 버튼으로 사용된 심벌(하나의 심벌로 여러개 버튼을 공유하든지 각각 따로 심벌이 되어있든지 상관없습니다) 자체에다 커지는 모션을 주면됩니다(무비클립이 아니라면 무비클립으로 재지정한 후에 해주면되죠). rollOver시 커졌다가 rollOut시 다시 작아지는 효과는 무비클립과 액션을 이용해 쉽게 구현하실수 있겠죠.